分岐文の使用に慣れることは、効果的なプログラムを書く上で不可欠です。
問題
次のプログラムを実行した場合、出力される結果はどれでしょうか?正しい選択肢を選んでください。
public class Main {
public static void main(String[] args) {
int score = 85;
String grade;
if (score >= 90) {
grade = "A";
} else if (score >= 80) {
grade = "B";
} else if (score >= 70) {
grade = "C";
} else {
grade = "D";
}
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: D
答えと解説
回答を見る
答え
B. Your grade is: B
解説
基本説明: このプログラムは、条件文を使ってスコアに基づいたグレードを設定します。
Javaにおけるif/else if文は、上から下へと条件を評価していきます。まずはじめに、scoreが90以上であるか確認します。
この結果がfalseであれば次に進み、80以上かどうかを確認します。ここでscore=85であるため、この条件がtrueとなり、gradeには「B」が代入されます。
以降の条件は評価されずにスキップされ、最終的な出力として「Your grade is: B」と表示されます。
誤答理由: 初心者が誤答する主な理由の一つに、条件分岐の流れを最後まで読み切れないことがあります。
scoreの条件を一つずつ着実に理解することが大切です。特に、if/else if構造では、上位の条件がtrueになった時点でそのブロック内の処理を実行し、残りの条件を無視する仕様をしっかり理解しましょう。
つまずきポイント: 分岐文の使い方では、論理の流れを頭の中で整理することが求められます。
プログラミングでは、複数の条件文が連続することがあります。その際に、どこでどの処理が実行されるのかを意識しておくことが重要です。
if文が複数の分岐を持つ場合は、最初の条件から順に評価され、最初に真と評価された条件の対応する処理が実行されることを覚えておきましょう。
発展知識: より複雑な条件が必要な場合は、論理演算子を用いることができます。
例えば、&&(AND)や||(OR)を用いることで、複数の条件を一度に評価することができます。
プログラムが大規模になりすぎるとif/else文がネスト(入れ子)し過ぎて可読性が下がることがありますが、論理演算子を用いることで簡潔に表現することもできます。条件分岐の工夫でプログラムがより適切かどうかを判断する力を養うことも一つの鍵です。