MENU

【Java Silver 試験】演算子と制御構造 初心者向け演習

今日は演算子と制御構造についての問題にチャレンジしましょう。

問題

次のプログラムを実行した場合、出力される結果はどれでしょうか?正しい選択肢を選んでください。

public class Main {
        public static void main(String[] args) {
            int score = 85;
            char grade;
            if (score >= 90) {
                grade = 'A';
            } else if (score >= 80) {
                grade = 'B';
            } else if (score >= 70) {
                grade = 'C';
            } else {
                grade = 'F';
            }
            System.out.println("Your grade is: " + grade);
        }
    }

選択肢

  • A. Your grade is: A
  • B. Your grade is: B
  • C. Your grade is: C
  • D. Your grade is: F

答えと解説

回答を見る

答え

B. Your grade is: B

解説

基本説明:

このプログラムは条件分岐を使って、数値から文字に変換して成績を出力します。

scoreという変数は得点を表し、int型の整数として85が代入されています。

この得点に基づき、if文で条件をチェックし、gradeを設定します。

scoreの値が90以上ならばgrade=’A’、80以上ならばgrade=’B’、70以上ならばgrade=’C’、それ以外はgrade=’F’と設定されます。

具体的には、scoreが85ですので「80以上90未満」の条件に一致し、gradeは’B’となり、結果として「Your grade is: B」が出力されます。

誤答理由:

選択肢Aが誤答となるのは、85は90以上ではないため、gradeが’A’になることはありません。

選択肢CやDは、scoreが85であるため、80以上の条件でBが選ばれた時点で他の条件はチェックされません。

このため、grade=’C’や’F’にはなりません。

つまずきポイント:

初学者がつまずきやすいのは、条件分岐の評価順です。

if-else if構造では、条件に一致した時点でそのブロックを実行し、他のelif、elseは素通りです。

もし間違っていても追加条件で修正されないため、一番初めの条件が正しい値になるかが重要です。

発展知識:

このような分岐は頻繁に使用され、switch文で代替できることもあります。

switch文は一つの変数に対して複数のケースを用意し、一致するケースを実行するものです。

また、if文を使わずに同様の条件をeval()で数式評価する方法もありますが、パフォーマンスが低いため非推奨です。

目次