Swiftで配列の要素を繰り返し(ループ)処理する方法について記載します。
目次
要素を繰り返し(ループ)処理する方法
配列の要素を繰り返し(ループ)処理するには、for-in・forEach を使用します。
それぞれの違いは、ループ内で continue・break・return の 使用可・不可の違いになります。
構文 | continue | break | return |
---|---|---|---|
for-in | ○ | ○ | × |
forEach | × | × | ○ |
1. for-in
for-in では、continue や break が使えるので
・特定の要素値の処理はスキップしたい( continue )
・特定の要素値が出現したらループ処理を終了したい( break )
という用途の繰り返し処理にむいています。
実行例( continue で 特定の値はスキップして処理 )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
let nums = [10,20,30,40,50] for num in nums { // 30 は出力しない if 30 == num { continue } print(num) } // 10 // 20 // 40 // 50 |
実行例( break で特定の値が出現したらループ処理を終了 )
1 2 3 4 5 6 7 8 9 10 11 12 |
let nums = [10,20,30,40,50] for num in nums { // 30 が出現したらループを終了 if 30 == num { break } print(num) } // 10 // 20 |
2. forEach
forEachでは、return が使えます。
return というと、関数から抜ける というように、forEachループから抜けるように感じますが、動作としては、continue と同じになります。
実行例( return で 特定の値はスキップして処理 )
1 2 3 4 5 6 7 8 9 10 11 12 13 |
let nums = [10,20,30,40,50] nums.forEach { num in if 30 == num { return } print(num) } // 10 // 20 // 40 // 50 |
3. まとめ
for-in、forEach の使い分けとしては
for-in:ループ処理で値のスキップや、途中で処理を抜けたい
forEach:ループ処理の全ての要素に処理を行いたい
というようにすれば分かりやすいと思います。
プロジェクトでコーディング規約を作る場合は、for-in のみ使用する でも良いと思います。