Answer 03-3
Javaのelse ifとは?確認問題の模範解答と解説

このページは、Javaのelse ifとは?複数条件を上から順番に判定する考え方の確認問題を見直すためのページです。
条件式だけでなく、上からどの順番で判定されるかも確認してください。
問題1:購入金額に応じた割引
回答例
if (price >= 10000) {
System.out.println("10%割引");
} else if (price >= 5000) {
System.out.println("5%割引");
} else {
System.out.println("割引なし");
}
10000円以上の購入は5000円以上にも当てはまります。そのため、より高い基準であるprice >= 10000を先に書きます。最初に成立した処理だけが実行されるので、12000円なら「10%割引」だけが表示されます。
問題2:間違った順番の判定
「60点以上」「80点以上」「90点以上」の順に書いた場合、scoreが95なら最初の「60点以上」が成立します。その時点で分岐を抜けるため、90点以上の条件には到達しません。
表示結果: 60点以上
正しい順番の例
if (score >= 90) {
System.out.println("90点以上");
} else if (score >= 80) {
System.out.println("80点以上");
} else if (score >= 60) {
System.out.println("60点以上");
}
範囲が重なる場合は、より限定された高い基準から並べます。これならscoreが95のとき、最初の条件で「90点以上」と表示されます。
問題3:気温に応じた表示
回答例
if (temperature >= 30) {
System.out.println("暑い");
} else if (temperature >= 25) {
System.out.println("暖かい");
} else {
System.out.println("過ごしやすい");
}
30度以上は25度以上にも当てはまるため、30度以上を先に判定します。25度以上30度未満のときだけ、最初の条件がfalse、次の条件がtrueとなり、「暖かい」が表示されます。