15 / 2755%

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

点数659085をまとめた配列の最初の要素を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

点数607590をまとめた配列があります。whileを使って、すべての点数を5ずつ増やし、更新後の値を順番に表示してください。

答えと解説を見る

模範解答

var scores = [60, 75, 90]

var i = 0
while i < scores.count {
    scores[i] += 5
    print(scores[i])
    i += 1
}

scores[i]を使うと、ループのたびに異なる要素を更新できます。表示される値は658095です。