LESSON 15 ・ 配列
配列とwhile
要素を更新する
var a = [65, 90, 85]
print(a[0])
print(a[1])
print(a[2])
a[0] = 67
print(a[0])
a[0] = 67のように、インデックスを指定して特定の要素だけ更新することもできます。
ループですべての要素を処理する
var a = [65, 90, 85]
var i = 0
while i < 3 {
print(a[i])
i += 1
}
配列を使えばループと組み合わせて処理することができます。a[i]のように[ ]の中に変数を使うことができるので、ループで変数の値を1ずつ増やしながら処理することができるからです。
このiのように、ループの制御に使う変数をループ変数と呼ぶことがあります。ループ変数にはindexの頭文字を取ってよくiが使われます。
要素数に合わせて繰り返す
var a = [65, 90, 85]
print(a.count)
i < 3のように、人数をコード中にベタ書き(ハードコード)してしまうと、人数が増えたときにコードも修正しなければなりません。countを使えば配列の長さ(要素数)を得ることができます。この例では3が出力されます。
var a = [65, 90, 85]
var n = a.count
var i = 0
while i < n {
print(a[i])
i += 1
}
要素数を使えば、さっきのループのコードはこのように書き換えられます。
var a = [65, 90, 85]
var i = 0
while i < a.count {
print(a[i])
i += 1
}
要素数を変数に代入せず、条件式に直接書くこともできます。
PRACTICE
演習問題
コードを自分で書いて実行してから、答えと解説を確認しましょう。
問題1
点数65、90、85をまとめた配列の最初の要素を70に更新し、更新後の値を表示してください。
答えと解説を見る
模範解答
var scores = [65, 90, 85]
scores[0] = 70
print(scores[0])
インデックス0を指定して代入すると、最初の要素だけを更新できます。
問題2
[4, 8, 12, 16]のすべての要素を、whileを使って順番に表示してください。繰り返す回数は要素数から求めてください。
答えと解説を見る
模範解答
var numbers = [4, 8, 12, 16]
var i = 0
while i < numbers.count {
print(numbers[i])
i += 1
}
ループ変数iをインデックスとして使います。numbers.countまで繰り返すため、要素数を変えても同じコードで処理できます。
問題3
点数60、75、90をまとめた配列があります。whileを使って、すべての点数を5ずつ増やし、更新後の値を順番に表示してください。
答えと解説を見る
模範解答
var scores = [60, 75, 90]
var i = 0
while i < scores.count {
scores[i] += 5
print(scores[i])
i += 1
}
scores[i]を使うと、ループのたびに異なる要素を更新できます。表示される値は65、80、95です。