MENU

【Java Silver】繰り返し文の理解とbreakの使用

今回はJava Silver試験にもよく出題される、繰り返し文とbreakの使用に関する問題です。

問題

次のコードを実行した場合に出力される結果は何でしょうか?最も正しい選択肢を選んでください。

public class LoopTest {
    public static void main(String[] args) {
        int i = 0;
        while (i < 5) {
            if (i == 3) {
                break;
            }
            System.out.println("i: " + i);
            i++;
        }
    }
}

選択肢

  • A. i: 0 i: 1 i: 2
  • B. i: 0 i: 1 i: 2 i: 3 i: 4
  • C. コンパイルエラー
  • D. i: 0 i: 1 i: 2 i: 3

答えと解説

回答を見る

答え

A. i: 0 i: 1 i: 2

解説

基本説明:

今回の問題では、whileループとbreakステートメントが使用されています。 whileループは条件がtrueの間実行されるため、このコードの場合、iが5より小さい間、ループは続きます。

ただし、途中でiが3になった時にbreakが実行され、ループを中断します。 したがって、実際に出力されるのはi: 0, i: 1, i: 2の3つだけです。

誤答理由:

選択肢Bのようにi: 3i: 4が表示されると誤解することがありますが、 breakが実行されるとその時点でループが終了します。 iが4になってループの条件を満たさないことはありません。

選択肢Dも似た誤りです。ここでもi == 3が条件によりbreakでループは終了します。

つまずきポイント:

初心者がよくつまずくポイントは、breakの動作についての理解不足です。 breakはループ全体を終了させるものであるため、部分的にスキップするcontinueとは異なります。

また、コードのフローを読む際に、何が出力されるのかを頭の中で考えるのは難しいことがあります。 そのため、実際に手を動かしてコードを書く練習をすることがお勧めです。

発展知識:

繰り返し文にはさまざまな書き方があり、forループやdo-whileループもJavaでは一般的です。

ループ制御に関しては、breakだけでなくcontinueもきちんと理解しておくことが大事です。 continueは現在のイテレーションをスキップし、ループを次のイテレーションに進める役割を持ちます。

これらの制御ステートメントを活用することで、効率的に特定の操作を反復させたり、無駄な処理を減らすことができます。 開発の現場では、これらの制御フローを適切に活用することが、プログラムのパフォーマンス向上やコードの可読性に繋がるため、しっかり理解しておきましょう。

目次