006 繰り返し(break文とcontinue文) 025 解答例

public class TripleLoopExample {
    public static void main(String[] args) {
        outerLoop:
        for (int i = 1; i <= 20; i++) {
            // 外側のループ: 1から20までの整数
            for (int j = 1; j <= 20; j++) {
                // 中間のループ: 1から20までの整数
                for (int k = 1; k <= 20; k++) {
                    // 内側のループ: 1から20までの整数

                    // 条件に合致する場合、break文を使用して全てのループを終了させる
                    if (i % 5 == 0 && j % 3 == 0 && k % 2 == 0) {
                        break outerLoop;
                    }

                    // 条件に合致しない場合の処理(例えば、表示など)
                    System.out.println("i: " + i + ", j: " + j + ", k: " + k);
                }
            }
        }
    }
}

このプログラムでは、外側のループ(i)、中間のループ(j)、内側のループ(k)が条件に合致した場合、break outerLoop; により全てのループが終了します。指定された条件が満たされた場合に break 文を使用する際に、外側のループにラベル(outerLoop)を指定することで、最も外側のループが終了するようになります。

break文やcontinue文でラベルを使う

Javaのbreakcontinue文には、ラベル(label)を使って、特定の外側のループから抜けたり、指定のループをスキップする機能があります。ラベルを使うことで、ネストされた複数のループがある場合に、特定のループに対して breakcontinue を行うことができます。

以下は、ラベルを使った breakcontinue の基本的な構文です。

outerLabel:
for (int i = 0; i < 5; i++) {
    innerLabel:
    for (int j = 0; j < 5; j++) {
        // 何らかの処理

        if (条件) {
            // 外側のループを終了
            break outerLabel;
            
            // 内側のループをスキップして次のイテレーションへ
            // continue outerLabel;
        }
    }
}

ここで outerLabelinnerLabel はユーザーが指定するラベルの名前です。break文により指定したラベルに対応するループが終了し、continue文により指定したラベルに対応するループがスキップされ、次のイテレーションが開始されます。

ただし、breakcontinue をラベルを使って使うことは一般的には避けるべきです。コードの可読性が低下しやすくなりますので、注意が必要です。通常、適切な条件文を使って、ネストされたループを抜けるかスキップするほうが好ましいです。

「006 繰り返し」問題集リスト