Java Silver試験に向けて、今回は制御構造とループに関する問題です。
問題
次のJavaプログラムを実行した場合、出力されるものは何ですか?最も適切な選択肢を選んでください。
public class LoopTest {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 5; i++) {
if (i % 2 == 0) continue;
sum += i;
}
System.out.println(sum);
}
}
選択肢
- A. 5
- B. 9
- C. 10
- D. 15
答えと解説
回答を見る
答え
B. 9
解説
基本説明
このプログラムは、1から5までの整数を対象にループを回しています。
if文によって、iが偶数(2, 4)の場合はcontinue文でスキップします。
そのため、sumには1, 3, 5のみが追加されることになります。
誤答理由
A(5)を選んだ場合、条件を勘違いして偶数だけ加算した可能性があります。
C(10)やD(15)は、continue文の効果を理解していないか、ループの回数を間違えている可能性があります。
つまずきポイント
continue文は現在のループの先に進むことを防ぎ、次の反復に進みます。
偶数をスキップする条件に注意する必要があります。
発展知識
ループ制御構造では、continueの他にbreakがあります。
breakはループ自体を終了し、ループの外に制御が移行します。
具体的な場面で使い分けることが重要です。