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

public class NestedForLoopExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            // 外側のループ: 1から10までの整数
            for (int j = 1; j <= 1; j++) {
                // 内側のループ: 各整数に対する処理
                // 奇数の場合は表示をスキップ
                if (i % 2 != 0 || j % 2 != 0) {
                    // continue文を使用して奇数の場合の処理をスキップ
                    continue;
                }

                // 偶数の場合は数値を表示
                System.out.println(i);
            }
        }
    }
}

このプログラムでは、外側のループでiかjが奇数の場合、内側のループがスキップされるようになっています。その結果、奇数の場合は表示をスキップして次の数に進みます。

深いループネストからのbreakとcontinue

深いループネストからの break と continue の使用について解説します。

  1. break の利用例:
    break文は、ループを終了させるために使用されます。深いネストの中で条件が満たされた場合、最も内側のループから抜け出すことができます。

例えば、以下は深いネストからのbreakを使用した例です。

for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= 5; j++) {
        if (i * j == 12) {
            System.out.println("条件が満たされました。");
            break; // 最も内側のループを終了させる
        }
    }
}

このコードでは、i * j == 12 の条件が満たされた場合、break;により最も内側のforループが終了します。このように、ラベルを使用せずにbreak文を利用することも可能です。

  1. continue の利用例:
    continue文は、その時点でのイテレーションをスキップして、次のイテレーションに進むために使用されます。

例えば、以下は深いネストからのcontinueを使用した例です。

for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= 5; j++) {
        if (i * j % 2 == 0) {
            continue; // 偶数の場合、次のイテレーションに進む
        }
        System.out.println("奇数: " + i * j);
    }
}

上記の例では、i * j が偶数の場合、continue;によりその時点の内側のforループをスキップして次のイテレーションに進みます。

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