三項演算子の使用に関する理解を深めるための問題です。
問題
次のコードを実行すると、どのような出力がされるでしょうか?
public class Main {
public static void main(String[] args) {
int x = 5;
int y = 10;
String result = (x > y) ? "x is greater" : "y is greater";
System.out.println(result);
}
}
選択肢
- A. x is greater
- B. y is greater
- C. コンパイルエラー
- D. 実行時エラー
答えと解説
回答を見る
答え
B. y is greater
解説
解説のポイント:
- 三項演算子の基礎
- 条件式の評価方法
- コードの可読性について
- 発展的知識:類似した条件式の使用
基本説明:
三項演算子 ( ?: ) は条件演算子とも呼ばれ、条件式 ? true時の値 : false時の値 という形式で使用されます。
今回のコードでは、変数xがyよりも大きいかどうかを条件式で評価しています。
条件式がtrueの場合は “x is greater” を、falseの場合は “y is greater” を変数resultに代入します。
誤答理由:
選択肢Aの「x is greater」を選んだ場合、条件式の誤解が考えられます。
x=5、y=10なので、x > y は false であるため、実行されるのは “y is greater” です。
選択肢Cの「コンパイルエラー」、Dの「実行時エラー」はこの状況では発生しません。
つまずきポイント:
条件式の理解が浅いと誤った選択をすることがあります。
特に三項演算子はコンパクトなため、条件式の部分をしっかりと確認することが求められます。
可読性が低下するため、複雑なロジックを三項演算子で処理しない方が良い場合もあります。
発展知識:
三項演算子を使用することでシンプルな条件分岐をコンパクトに書けますが、複雑なロジックには向いていません。
条件分岐の可読性を維持するために、if-else文と使い分けると良いでしょう。
また、三項演算子は他の言語でも存在するため、 Java以外の言語でも活用できます。