【Swift4】for文・for in文などを使って単純ループ・配列ループを処理する方法【Xcode9】
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です。