工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

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文の動作

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はその内側のループの現在の反復のみに影響します。

Java 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で識別されるループの現在の反復をスキップします。

Java continue文:ループ制御を例でマスター

上図では、ラベルが外側のループを対象としており、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

  1. C# continue 文をマスターする:ループ反復を効果的にスキップする方法
  2. C++ continue文完全ガイド:ループ制御の実例とベストプラクティス
  3. Python ループ制御 break & continue 完全マスター
  4. Pythonループ完全ガイド:for、while、break、continue、enumerate
  5. Java演算子をマスター:種類、構文、実践例
  6. Java if…elseをマスター:制御フローを徹底解説
  7. Java拡張forループをマスター:構文、例、ベストプラクティス
  8. Javaインターフェース完全ガイド:概念、実装、ベストプラクティス
  9. Javaのtry-with-resourcesをマスターする:自動リソース管理の仕組みと活用法
  10. Javaアノテーション完全ガイド:種類、配置場所、実践例
  11. Javaでアームストロング数を判定・列挙するプログラム