Swiftのfor each文は配列や辞書などを繰り返す際に使います。
本記事ではfor each文の基本的な使い方と似た処理をするfor in文との違いについて解説していきます。
環境: Swift 4.2
◾︎あわせて読みたい記事↓↓
✔︎Swift・アプリ開発の勉強法を現役エンジニアがまとめた【おすすめサイト・サービス10選】

[Swift] for eachの使い方
1 2 3 4 5 6 7 8 9 |
var numbers = [0,1,2,3,4,5] numbers.forEach { if $0 % 2 == 0 { //要素が偶数であれば print($0) } } //結果: 0 2 4 |
numbersの配列をforEachで繰り返しています。繰り返す要素をfor each文では、
$0
となっています。
$0(要素)が偶数であれば、出力するので、0 2 4 となっています。
辞書にも使うことができます。
1 2 3 4 5 6 7 |
var person: Dictionary = ["name": "Taro", "age": 20] as [String : Any] person.forEach { print($0) } //結果: (key: "name", value: "Taro"), (key: "age", value: 20) |
for in との違いは?
for in文でも配列や辞書の繰り返しは可能です。詳しくはSwiftのfor inの使い方の記事を参考にしてみてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//for inでの繰り返し var numbers = [0,1,2,3,4,5] for num in numbers { print(num) } //結果: 0 1 2 3 4 5 //for eachでの繰り返し var price = [100,120,140.160] price.forEach { print($0) } //結果: 100 120 140 160 |
基本的には同じ処理ですが、違いは
for each文はreturnやbreakなどで処理を抜けることができません。
for in文ではreturnで処理を抜けることができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
var numbers = [0,1,2,3,4,5] for num in numbers { if num == 3 { break } print(num) } //結果: 0 1 2 // forEach numbers.forEach { if $0 == 3 { return } print($0) } //結果: 0 1 2 4 5 |
for in文ではnumが3の時処理を抜けて終わるように指示しており、
出力結果は、0 1 2で3以降の処理が中断されています。
一方で、for eachでは、同じようにnumが3の時処理を中断するように書いていますが、結果は、0 1 2 4 5で、
3の時、処理は行われていませんが、その後も4,5と処理が継続しています。
ここがfor inとfor eachの違いと言えます。
まとめ
- for eachはfor inと同じように処理の繰り返しに使う
- for eachとfor inは書き方に違いがある
- for each for inはbreakやreturnを使った時の処理に違いが出る
◾︎あわせて読みたい記事↓↓
✔︎Swift・アプリ開発の勉強法を現役エンジニアがまとめた【おすすめサイト・サービス10選】
