【Swift】break文とcontinue文

break文 とは、for文 や switch文 などのループ処理を中断する事ができる構文です。
基本的には if文 などと併用して条件を付けて使います。
ループ中に、もし指定した条件を満たしたらループを中断して、次の処理に移りたい時などに使います。

前回は 集合型 について書きました。

今回は break文 と continue文 について書いていこうと思います。

break文

break文 とは

break文 とは、for文switch文 などのループ処理を中断する事ができる構文です。
基本的には if文 などと併用して条件を付けて使います。
ループ中に、もし指定した条件を満たしたらループを中断して、次の処理に移りたい時などに使います。

for文 についてはこちらの記事で紹介しています。 

if文 についてはこちらの記事で紹介しています。

break文 の使い方

使い方は break と書くだけです。

break

break文 を使った例

let slot = [145, 214, 405, 315, 777, 343]

for i in 0 ..< 20 {
    let stop = slot.randomElement()
    print("\(i)回転目 : \(stop ?? 123)")
    
    if stop == 777 {
        print("大当たり!")
        break
    }
}

//実行結果
/*
0回転目 : 315
1回転目 : 315
2回転目 : 343
3回転目 : 315
4回転目 : 145
5回転目 : 145
6回転目 : 315
7回転目 : 214
8回転目 : 405
9回転目 : 777
大当たり!
*/

配列slot に 3 桁の整数を要素として複数代入しています。
for文 は最大 20 回ループするようにしました。
処理は 配列slot の要素をランダムに取り出して、取り出した値を 定数stop に代入します。
print( ) で何回目のループなのかと 定数stop に代入された値を出力します。
if文 で、もし 定数stop に代入された値が 777 だったら、print( )”大当たり!” と出力して、break で中断します。
for文 は 20 回としていますが、20 回ループする前に 777 が選択されたら途中でも for文 を中断します。
また、777 が選択されなければ 20 回ループして for文 を中断します。

randomElement( ) メソッドはコレクション型の要素をランダムに返すメソッドです。返ってくる値は Optional型 なのでアンラップして print( ) で出力しています。

Optional型 についてはこちらの記事で紹介しています。

break-continueコードimg

continue文

continue文とは

continue文 とは、continue と書いた後の処理をスキップする事ができる構文です。
break文 はループ自体を中断して次の処理に移行しますが、continue文 は次回のループ処理に移行する。という違いがあります。
break文 同様 continue文 も条件を付けて使う場合が多いので、if文 などと併用することが多いと思います。

continue文 の使い方

使い方は continue と書くだけです。

continue

continue文 を使った例

上の break文 のコード例を流用

let slot = [145, 214, 405, 315, 777, 343]

for i in 0 ..< 20 {
    let stop = slot.randomElement()
    if stop == 777 {
        print("jackpot!")
        continue
    }
    print("\(i)回転目 : \(stop ?? 123)")
}

//実行結果
/*
0回転目 : 214
1回転目 : 405
2回転目 : 405
3回転目 : 315
4回転目 : 214
jackpot!
6回転目 : 214
7回転目 : 315
8回転目 : 405
9回転目 : 315
10回転目 : 343
11回転目 : 343
12回転目 : 343
13回転目 : 405
jackpot!
15回転目 : 145
16回転目 : 405
17回転目 : 343
18回転目 : 145
19回転目 : 343
*/

for文 は 20 回ループ、処理は 配列slot の要素をランダムに取り出して、取り出した値を 定数stop に代入します。
もし 定数stop に代入された値が 777 だったら、jackpot! と出力し continue して、一番下の print( ) はスキップして次回のループに移行します。
777 以外であれば if文 の条件から外れているので、if文 はスキップされて 一番下の print( ) で何回目のループなのかと 定数stop に代入された値を出力します。
つまり、777 だった時のみ continue して次回のループに、それ以外は continue されずに回転数と値を出力する、という流れになります。

break文break と書かれた後 for文 自体を中断してループを抜けてしまいますが、
continue文continue と書かれた後の処理をスキップするだけなので、for文 は指定通り20 回ループされています。

break-continueコードimg2

以上 break文 と continue文 についてでした。

次回は guard文 について書いていこうと思います。

実行環境

version
Xcode 14.2 (14C18)
Swift 5.2.4

公式ドキュメント

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/