【Java】繰り返し処理(while文、for文)のbreakとcontinueの処理の流れをサンプルコードを使って解説
ループ処理でのbreakとcontinueについて解説していきます。
breakはseitch-case文で解説しましたが、これは、switch-case文を「ジャンプアウト」
するために使用されました。
ループ処理でのbreakも似たような処理になります。
また、continueあり、こちらもジャンプする処理になります。
その為、今回はwhile文、for文のbreakとcontinueの処理の流れをサンプルコードを使って解説していきます。
処理内容が異なるの両方の処理を間違えないように覚えておきましょう。
break
while文のbreakもまた、ループを飛び出すために使用することができます 。
breakを使用して、ループから即座に抜けます。
ループ内でbreakステートメントが見つかると、コントロールは直接ループから抜け出し、
残りの反復のためにループが終了します。
ループ内で使用される場合は常にifステートメントとともに使用され、
特定の条件でループが終了するようにします。
ここで注意すべき重要な点は、breakステートメントがネストされたループ内で使用されると、
内側のループのみが終了することです。
それでは、break含めると、for文とwhile文でどのような処理になるのか
サンプルコードを使ってそれぞれ解説していましょう。
forループ(break使用)
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.*; public class sample{ public static void main(String args[]){ int var; for (var = 100; var >= 10; var --) { System.out.println("値: "+ var); if (var==99) { break; } } System.out.println("ループから出ました。"); } } |
出力結果
値: 100
値: 99
ループから出ました。
解説
100から10まで処理が行われるのですが、varが99になると、breakを通過しまうため、
強制的にループからジャンプして抜けることになります。
whileループ(break使用)
以下の例では、0から100まで実行するwhileループがありますが、
ループ値が2に達したときにのみ発生するbreakステートメントがあるため、
ループが終了し、ループの後にプログラムの次のステートメントに制御が渡されます。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import java.util.*; public class sample { public static void main(String[] args){ int num = 0; while(num <= 100) { System.out.println("変数の値は:" + num ); if(num == 2) { break; } num ++; } System.out.println("ループから出ました"); } } |
出力結果
変数の値は:0
変数の値は:1
変数の値は:2
ループから出ました。
解説
0から100まで処理が行われるのですが、iが2になると、breakを通過しまうため、
強制的にループからジャンプして抜けることになります。
continue
continueは、ループの終わりにループの次の反復にジャンプします。
そして、ループの条件式が実行されます。
breakと違うところはジャンプしてもループ処理は続くということです。
それでは、continueを含めると、for文とwhile文でどのような処理になるのか
サンプルコードを使ってそれぞれ解説していましょう。
forループ(continue使用)
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 |
class sample { public static void main(String[] args) { for (int i = 1; i <= 10; ++i) { if (i > 4 && i < 9) { continue; } System.out.println(i); } } } |
出力結果
1
2
3
4
9
10
解説
1から10までforループの処理が行われるのですが、iが5,6,7,8になると
continueを通過しまうため、println()メソッドが行われず、
ループの先頭にジャンプしてループ処理を続行します。
whileループ(continue使用)
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class sample { public static void main(String[] args) { int i = 1; while (i <= 10) { if (i > 4 && i < 9) { continue; } System.out.println(i); i = i + 1; } } } |
出力結果
1
2
3
4
9
10
解説
1から10までwhileループの処理が行われるのですが、iが5,6,7,8になると、
continueを通過しまうため、println()メソッドが行われず、
ループの先頭にジャンプしてループ処理を続行します。
まとめ
breakはループから即座に抜ける。
つまり、ループを飛び出すために使用することができる。
continueは、ループの終わりにループの次の反復にジャンプする。
そして、ループの条件式が実行される。
breakは通過するとループ処理が終わるが、continueは通過してもループ処理は続く。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。