LoginSignup
16
9

More than 3 years have passed since last update.

[Swift] for inとforEachの使い方メモ

Last updated at Posted at 2020-06-09

for in と forEachの使い方を忘れていた。。。

アプトプットも兼ねて自分用にまとめてみます。

よく使う書き方


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

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

let arr = ["a", "b", "c", "d"]

for i in 0..<arr.count {
    print(arr[i])  // a, b, c, d
}

for i in arr {
    print(i)  // a, b, c, d
}

arr.forEach {
    print($0)  // a, b, c, d
}

Array(0..<arr.count).forEach {
    print(arr[$0])  // a, b, c, d
}

for in と forEachの違い

結論から言うと、

・for in文ではbreakでループ処理を抜けることができる
・for each文はreturnやbreakなどでループ処理を終わらせて抜けることができない

以下、Playgroundでコードをいじってみました

var numbers = [0, 1, 2, 3, 4, 5]

//for in
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
}

へえ、forEach文の中身はあくまで関数のため、returnはループ内の関数を抜けるだけでループ自体は継続するんですね。

ちなみに上のコードにおいて、for inの方でreturnを書いたり、forEachの方でbreakをかくとエラーが出て実行できません。

補足しておくと、
breakとreturnのざっくりとした違い
・break・・・ループをその場で終了させる。
・return・・・関数内の処理を抜ける。

16
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
9