【Swift4】for文・for in文などを使って単純ループ・配列ループを処理する方法【Xcode9】

2020年8月29日

for var i = 0; i < 5; i++ {
    print(i)
}

色々な言語で使われている、このような文法のfor文がSwift3から使えなくなりました。
今後、Swiftでfor文をを使う場合はfor in文を使うことになります。

単純なfor文(ループ)

for文(昇順)

1. for in を使う

for i in 0..<5 {
    print(i)
}

2. forEach を使う

for i in 0..<5 {
    print(i)
}

for文(降順)

1. for in を使う

for i in (0 ..< 5).reversed() {
    print(i)
}

2. forEach を使う

(0 ..< 5).reverse().forEach { (i) in
    print(i)
}

for文でループごとに2づつ増やす方法

今まではループごとにi++という1カウントづつ増えるfor文でしたが、次は2カウントづつなど任意のカウントづつ増やす方法です。

昇順

// for i in stride(from: 開始位置, to: 終了位置, by: 間隔) 
for i in stride(from: 0, to: 5, by: 2) {
    print(i)
}

降順

// for i in stride(from: 開始位置, to: 終了位置, by: 間隔) 
for i in stride(from: 0, to: 5, by: 2).reversed() {
    print(i)
}

配列のループ

1. for in を使う

let array = ["a", "b", "c", "d"]
for value in array {
    print(value)
}

2. enumerated を使う

// for (index番号, 値) in 配列.enumerated()
let array = ["a", "b", "c", "d"]
for (index, value) in array.enumerated() { {
    print(value)
}

3. stride を使う

// for i in stride(from: 開始位置, to: 終了位置, by: 間隔) 
let array = ["a", "b", "c", "d"]
for i in stride(from: 0, to: array.count, by: 1) {
    print(array[i])
}

連想配列のループ(Dictionary)

let parameter = ["name": "田中", "age": "24才", "hight": "170cm", "wight": "54kg"]
for (key,value) in parameter {
    print("\(key)は\(value)です。")
}

実行結果

nameは田中です。
ageは24才です。
hightは170cmです。
wightは54kgです。