DEV Community

TANIAOKA, Akihiro
TANIAOKA, Akihiro

Posted on

4章17

以下はあなたのJavaプログラムにコメントアウトを追加して分かりやすくしたものです。このプログラムの実行結果が「12」になる理由を説明します。

public class Main {
    public static void main(String[] args) {
        int total = 0; // 合計を保存する変数を初期化

        // 外側のループ: i を 0 から 4 まで繰り返す
        a: for (int i = 0; i < 5; i++) {
            // 内側のループ: j を 0 から 4 まで繰り返す
            b: for (int j = 0; j < 5; j++) {
                // i が偶数の場合、外側のループの次のイテレーションに進む
                if (i % 2 == 0) continue a;
                // j が 3 以上の場合、内側のループを終了
                if (3 < j) break b;
                // total に j の値を加える
                total += j;
            }
        }

        // 合計を出力
        System.out.println(total);
    }
}
Enter fullscreen mode Exit fullscreen mode

では、コードの流れを見てみましょう。

  1. total 変数を 0 で初期化します。
  2. 外側のループ (a) は i の値を 0 から 4 まで繰り返します。
  3. 内側のループ (b) は j の値を 0 から 4 まで繰り返します。
  4. 内側のループで、もし i が偶数 (0, 2, 4) の場合、continue a によって外側のループの次のイテレーションに進みます。
  5. もし j が 3 より大きい場合、break b によって内側のループを終了します。
  6. totalj の値を加算します。

具体的な計算の流れを確認します:

  • i = 0: 偶数なので continue a によりスキップ
  • i = 1:
    • j = 0: total += 0total = 0
    • j = 1: total += 1total = 1
    • j = 2: total += 2total = 3
    • j = 3: total += 3total = 6
    • j = 4: break b により内側ループ終了
  • i = 2: 偶数なので continue a によりスキップ
  • i = 3:
    • j = 0: total += 0total = 6
    • j = 1: total += 1total = 7
    • j = 2: total += 2total = 9
    • j = 3: total += 3total = 12
    • j = 4: break b により内側ループ終了
  • i = 4: 偶数なので continue a によりスキップ

最終的に total は 12 になります。よって、正しい答えは B の「12が表示される」です。

Top comments (0)