LESSON 17 ・ ループ
レンジ
連続する数を扱う
前に、0から9999まで順番に表示するコードを書きました。
var a = 0
while a < 10000 {
print(a)
a += 1
}
0から9999までの値をすべて配列に書くのは大変です。
レンジを使う
let numbers = 0..<10000
for number in numbers {
print(number)
}
Swiftでは、0..<10000とすると、0から9999までの値を表すレンジ(Range)を作ることができます。レンジからも、配列と同じようにforで値を一つずつ取り出してループできます。
for a in 0..<10000 {
print(a)
}
inの右側に直接0..<10000と書くこともできます。
始まりを指定する
for a in 10..<20 {
print(a)
}
10..<20のようにして、レンジの始まりと終わりを指定することもできます。
範囲の扱い方
let r = 10..<20
print(r.lowerBound)
// rの値を変更することはできない
Swiftのレンジから始まりの値を取り出すにはlowerBoundを使えます。レンジは範囲を表す値なので、配列のように途中の要素を変更することはできません。
PRACTICE
演習問題
コードを自分で書いて実行してから、答えと解説を確認しましょう。
問題1
レンジとforを使って、0から4までの数字を順番に表示してください。
答えと解説を見る
模範解答
for number in 0..<5 {
print(number)
}
終わりとして指定した5は含まれないため、0から4までが表示されます。
問題2
始まりと終わりを指定したレンジを使って、10から14までの数字を順番に表示してください。
答えと解説を見る
模範解答
for number in 10..<15 {
print(number)
}
始まりを10、終わりを15にします。終わりの15は含まれません。
問題3
レンジとforを使って、1から100までの整数の合計を求め、表示してください。
答えと解説を見る
模範解答
var total = 0
for number in 1..<101 {
total += number
}
print(total)
100まで含めるため、終わりには101を指定します。合計は5050です。