分岐文を使った判断ロジックを理解することはプログラミングの基礎の一つです。
今回は、if文とswitch文に関する問題を解いてみましょう。
問題
以下のプログラムを実行したときに、コンソールに出力される内容として正しいものを選んでください。
public class ConditionalExample {
public static void main(String[] args) {
int num = 75;
if(num > 100) {
System.out.println("Above 100");
} else if(num > 50) {
System.out.println("Above 50");
} else {
System.out.println("50 or below");
}
switch(num) {
case 50:
System.out.println("Equals 50");
break;
case 75:
System.out.println("Equals 75");
break;
default:
System.out.println("Neither");
}
}
}
選択肢
- A. Above 100
- B. Above 50 & Equals 75
- C. 50 or below & Equals 75
- D. Neither
答えと解説
回答を見る
答え
B. Above 50 & Equals 75
解説
基本説明:
まず、if文の評価から見ていきましょう。
num
の値は 75 です。
if の条件では「num > 100
」が最初に評価されますが、75 は 100 より小さいため、このブロックは実行されません。
次に「num > 50
」が評価され、75 は 50 より大きいので、「Above 50」が出力されます。
誤答理由:
C や D の選択肢を選んだ場合は、if 文や switch 文の条件を誤解している可能性があります。
if文では条件が 1 つでも満たされれば他の条件は評価されないため、最初に条件を満たした else if
以降は評価されません。
つまずきポイント:
多くの人が理解に苦しむポイントは、条件分岐の処理順序です。
if, else if の段階で条件が満たされると、以降の条件は評価されないことを覚えておきましょう。
加えて、switch 文では case に一致する値を探しますが、break がないとそのまま次の case まで処理が続きます。
発展知識:
switch 文は条件が数値や文字列などの特定の具体的な値である場合に効果的です。
if 文は条件が複雑だったり、特定のパターンを評価したいときに使われます。
Java では、switch 文も拡張されており、演算が可能になってきているので併せて学びましょう。