for
for文は繰りかえし行いたい処理がある時に使います。
Swiftのfor文はC言語などのfor文がそのまま使えないため注意です!
基本文法
基本的な書き方は以下の2つです。1つ目が配列などを1つずつ取り出してループするfor書き方で、2つめはレンジ演算子を使ったC言語などの従来の書き方に近いforの書き方です。
for item in items {
//code
}
for i in 0..< 10{
//code
}
for文でカウントをする
配列(変数data)の中の要素を1つずつ取り出してcountに足しています。
出力される値は、1回目は2、2回目は5, 3回目は10…と配列の長さだけループが回ります。
var count = 0
let data = [2, 3, 5, 6]
for d in 0..<data{
count += d
print(count)
}
countの値が1ずつインクリメントされてprintされていきます。
出力される値は1回目は1, 2回目は2, 3回目は3…と1ずつ増えた値が出力され10まで繰り返します。
var count = 0
let max = 10
for _ in 0..<max{
count += 1
print(count)
}
Note
for文に限らずですがSwiftでは使っていない変数などを省略することが推奨されています。今回の例ではforの何番目の値かを必要としていないため_で省略しています。
2ずつ増えるループを回したい時
1ずつではなく2ずつ、3ずつ増やしてるーぷをまわしたいときもあります。そんな時はstrideという便利なものが用意されています。
このコードでは0から10まで2刻みでループが回るため5回for文の中が呼ばれます。
var count = 0
for _ in stride(from: 0, to: 10, by: 2){
count += 1
print(count)
}
配列の中身と要素番号を同時に使いたい時
配列でループを回す際に、配列の中身だけではなく何回目のループなのかを要素番号に使いたい時があります。
Swiftにはenumerated()というものが用意されています。これを使うことで配列の要素番号も取得してループを回すことができます。
let arr = ["きうい","ばなな","りんご"]
for (n, i) in arr.enumerated() {
print("\(n)番目\(i)")
}