continue文とは?
continue文とは、for文やwhile文といった繰り返し処理の途中で、その繰り返しを中断したいときに使われる構文です。
繰り返し処理を中断したいときに使われる処理として、「continue文」と「break文」の2種類があります。
for文について詳しく知りたい人は、以下の記事を参考にしてみてください。
【関連記事】
▶︎【必須スキル】繰り返し処理で利用するJava for文の使い方について解説!
continue文とbreak文の違いは?
繰り返し処理を抜けるときに「continue」や「break」を使いますが、どういう使い分けをするのかわかりません…。
ここでは、continue文とbreak文の違いを説明します。
まず、continue文は「今の周回だけを中断して同じ繰り返しの次の周回に進む」際に使われます。
繰り返し自体は終わらないが1度だけスキップする、といったイメージです。
一方で、break文は「for文やwhile文の繰り返しをすぐに中断する」際に使われます。
指定した条件になったら繰り返しを終わらせたいときなどで利用します。
文章だけでは理解するのが難しいかと思いますので、サンプルを使って具体的な処理をみていきましょう。
continue文の使い方
繰り返し処理をcontinue文で中断する方法(for文)
以下は、for文で5回の繰り返しの中で2回目の処理を中断するプログラムです。
public class Main { public static void main(String[] args) { System.out.println("coutinue文でfor文の中断処理"); for (int num = 1; num <= 5; num++) { if (num == 2) { System.out.println("---" + num + "回目の処理を中断します。---"); continue; } System.out.println(num + "回目の処理です。"); } } }
↓実行結果
continue文でfor文の中断処理 1回目の処理です。 ---2回目の処理を中断します。--- 3回目の処理です。 4回目の処理です。 5回目の処理です。
同じ処理を「continue;」から「break;」に変更すると、以下の実行結果になります。
↓実行結果
break文でfor文の中断処理 1回目の処理です。 ---2回目の処理を中断します。---
continue文とは異なり、2回目以降の処理が実行されないことがわかります。
繰り返し処理をcontinue文で中断する方法(while文/do-while文)
以下は、while文で5回の繰り返しの中で2回目の処理を中断するプログラムです。
while文では、continueの前にnum++を追加することで、2回目以降の処理を継続させるように動かしています。
public class Main { public static void main(String[] args) { int num = 1; System.out.println("continue文でwhile文の中断処理"); while (num <= 5) { if (num == 2) { System.out.println("---" + num + "回目の処理を中断します。---"); num++; continue; } System.out.println(num + "回目の処理です。"); num++; } } }
↓実行結果
continue文でwhile文の中断処理 1回目の処理です。 ---2回目の処理を中断します。--- 3回目の処理です。 4回目の処理です。 5回目の処理です。
do-while文で同じ処理をするときは、以下のように記述します。
public class Main { public static void main(String[] args) { int num = 1; System.out.println("continue文でdo-while文の中断処理"); do { if (num == 2) { System.out.println("---" + num + "回目の処理を中断します。---"); num++; continue; } System.out.println(num + "回目の処理です。"); num++; } while(num <= 5); } }
実行結果は、while文と同様になるはずです。
ラベル付きのcontinue文で多重ループを中断する方法
ラベル付きのcontinue文で多重ループを中断する方法も見ていきましょう。
ラベル付きのcontinue文は、以下のように記述して使われます。
ラベル: for (条件式) { for (条件式) { 処理 continue ラベル; } }
ラベルを付けたcontinue文は、処理を中断した後にラベルを付けた繰り返し処理を続けます。
以下のプログラムは、jが3になるとcontinueで処理を中断し、ラベル付きのfor文を繰り返すかけ算の処理です。
public class Main { public static void main(String[] args) { label: for (int i = 1; i < 5; i++) { for (int j = 1; j < 5; j++) { if (j == 3) { continue label; } System.out.println(i + "×" + j + "=" + i*j); } } } }
iもjも、5より小さい間は処理を繰り返すように条件式を設定しています。
jのfou文の中には、if文で「jが3の場合」にcontinue文で処理を中断し、ラベル(label)まで戻るようになっています。
このプログラムを実行すると、以下の実行結果になるはずです。
↓実行結果
1×1=1 1×2=2 2×1=2 2×2=4 3×1=3 3×2=6 4×1=4 4×2=8
jが3になったときに処理が中断され、かけられる数が1と2だけになっているのがわかります。
まとめ
Javaの繰り返し処理で使われるcontinueについて解説しました。
continueは、for文でもwhile文でも使用できる処理の中断方法です。
breakとは違い、指定した周回だけを中断できるといった特徴があり、応用的な使い方にも対応できます。
ラベルを付けることで、より複雑な処理の中断も使いこなせます。この記事でぜひ、continueの使い方をマスターしてください!