LESSON 16 ・ 配列
配列とfor
forで要素を取り出す
var a = [65, 90, 85]
for b in a {
print(b)
}
whileとループ変数を使って配列の各要素にアクセスすることもできますが、これは頻繁に行われる処理なので、もっと便利な手段が用意されています。それがforです。
forを使うと、配列の各要素を順番に取り出して処理することができます。この場合、aの要素が一つずつ順番に取り出されbに格納されてからブロックの内容が繰り返し実行されます。
var scores = [65, 90, 85]
for score in scores {
print(score)
}
平均点を計算する
var scores = [65, 90, 85]
var total = 0
for score in scores {
total += score
}
print(total / scores.count)
forを使うと、平均点を計算する処理は上記のように書けます。
このように、ループと配列を使えば、たとえ10000人の平均点を計算するコードでも簡単に書くことができます。
PRACTICE
演習問題
コードを自分で書いて実行してから、答えと解説を確認しましょう。
問題1
点数65、90、85をまとめた配列から、forですべての要素を順番に表示してください。
答えと解説を見る
模範解答
var scores = [65, 90, 85]
for score in scores {
print(score)
}
要素が一つずつscoreに入り、そのたびにブロックが実行されます。インデックスを自分で管理する必要はありません。
問題2
[3, 5, 7, 9]のすべての要素を足し、合計を表示してください。
答えと解説を見る
模範解答
var numbers = [3, 5, 7, 9]
var total = 0
for number in numbers {
total += number
}
print(total)
取り出した要素を順番にtotalへ足します。ループの後では、合計の24が保存されています。
問題3
点数45、72、88、59のうち、59より大きい点数がいくつあるか数えて表示してください。
答えと解説を見る
模範解答
var scores = [45, 72, 88, 59]
var passed = 0
for score in scores {
if score > 59 {
passed += 1
}
}
print(passed)
各要素をifで調べ、条件を満たすたびにpassedを1増やします。該当する点数は72と88なので、2が表示されます。