Java continue文:ループ制御を例でマスター
Java continue文
このチュートリアルでは、Javaのcontinue文とラベル付きcontinue文を明確な例で説明し、ループフローを効率的に制御する方法を学びます。
ループを扱うとき、特定の文をスキップしたり、ループを早期に終了したりしたい場合があります。そんなときにbreakとcontinue文が使われます。
break文についてはJava breakを参照してください。ここではcontinue文に焦点を当てます。
Java continue
continue文はループ(for、while、do…whileなど)の現在の反復をスキップします。continue文の後、プログラムはループの終了チェック(forループの場合は更新式)にジャンプします。
構文は以下の通り:
continue;
注意: continue文は条件ブロック(例:if文)内で最もよく使用されます。
Java continue文の動作

例1: Java continue文
class Main {
public static void main(String[] args) {
// forループ
for (int i = 1; i <= 10; ++i) {
// iの値が4から9の間なら
// continueが実行される
if (i > 4 && i < 9) {
continue;
}
System.out.println(i);
}
}
}
出力:
1 2 3 4 9 10
このプログラムでは、forループが各反復でiの値を出力します。iが4より大きく9より小さいときcontinue文が発動し、5、6、7、8でprintln文がスキップされます。
例2: 5つの正の数の合計を計算
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Double number, sum = 0.0;
// Scannerオブジェクトを作成
Scanner input = new Scanner(System.in);
for (int i = 1; i < 6; ++i) {
System.out.print("数値 " + i + " を入力: ");
// ユーザーから入力を取得
number = input.nextDouble();
// 数値が負またはゼロなら
// continue文を実行
if (number <= 0.0) {
continue;
}
sum += number;
}
System.out.println("合計 = " + sum);
input.close();
}
}
出力:
数値 1 を入力: 2.2 数値 2 を入力: 5.6 数値 3 を入力: 0 数値 4 を入力: -2.4 数値 5 を入力: -3 合計 = 7.8
ここでは、continue文が負またはゼロの入力をスキップし、正の値のみが合計に寄与することを保証します。
注意: ユーザー入力の読み取りにScannerクラスを使用しました。詳細についてはJava Scannerを参照してください。
ネストループでのJava continue
ループがネストしている場合、内側のループ内のcontinueはその内側のループの現在の反復のみに影響します。

例3: ネストループでのcontinue
class Main {
public static void main(String[] args) {
int i = 1, j = 1;
// 外側のループ
while (i <= 3) {
System.out.println("外側のループ: " + i);
// 内側のループ
while(j <= 3) {
if(j == 2) {
j++;
continue;
}
System.out.println("内側のループ: " + j);
j++;
}
i++;
}
}
}
出力
外側のループ: 1 内側のループ: 1 内側のループ: 3 外側のループ: 2 外側のループ: 3
この例では、内側のループのcontinueがjが2のときの反復をスキップし、「内側のループ: 2」が出力されないようにします。
ラベル付きcontinue文
基本的なcontinueに加えて、Javaは特定のループにフローを制御するラベル付き版もサポートします。構文は:
continue label;
これにより、labelで識別されるループの現在の反復をスキップします。

上図では、ラベルが外側のループを対象としており、continueがそのループの反復全体をスキップすることを示しています。
例4: ラベル付きcontinue文
class Main {
public static void main(String[] args) {
// 外側のループにfirstラベル
first: for (int i = 1; i < 6; ++i) {
// 内側のループ
for (int j = 1; j < 5; ++j) {
if (i == 3 || j == 2)
// 外側のループの現在の反復をスキップ
continue first;
System.out.println("i = " + i + "; j = " + j);
}
}
}
}
出力:
i = 1; j = 1 i = 2; j = 1 i = 4; j = 1 i = 5; j = 1
ここでは、iが3またはjが2のとき、ラベル付きcontinueがfirstと名付けられたループの次の反復にジャンプします。
注意: ラベル付きcontinueは強力ですが、可読性を低下させることが多いです。このような必要性に遭遇した場合、フローを明確に保つためにリファクタリングを検討してください。
Java
- C# continue 文をマスターする:ループ反復を効果的にスキップする方法
- C++ continue文完全ガイド:ループ制御の実例とベストプラクティス
- Python ループ制御 break & continue 完全マスター
- Pythonループ完全ガイド:for、while、break、continue、enumerate
- Java演算子をマスター:種類、構文、実践例
- Java if…elseをマスター:制御フローを徹底解説
- Java拡張forループをマスター:構文、例、ベストプラクティス
- Javaインターフェース完全ガイド:概念、実装、ベストプラクティス
- Javaのtry-with-resourcesをマスターする:自動リソース管理の仕組みと活用法
- Javaアノテーション完全ガイド:種類、配置場所、実践例
- Javaでアームストロング数を判定・列挙するプログラム