17 / 2762%

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です。