演算子の優先順位(算術 → 関係 → 論理の順で評価される)難易度 標準無料
次のコードの出力として正しいものを選べ。
1 public class Q9 {
2 public static void main(String[] args) {
3 System.out.println(10 + 5 * 2 > 15 && 3 < 4);
4 }
5 }
- A
true - B
false - Cコンパイルエラー(算術演算子と関係演算子・論理演算子を1つの式に混在できない)
- D
30
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済
解説
Java の演算子優先順位は概ね 乗除算(*///%) > 加減算(+/-) > 関係演算子(</> 等) > 論理演算子(&&/||)の順(数値が大きいものから低くなる)。この順で式を分解する。
- 乗算:
5 * 2 = 10。 - 加算:
10 + 10 = 20。 - 関係演算子:
20 > 15→true、3 < 4→true。 - 論理積:
true && true→true。
出力は true。
- B優先順位通りに計算すると
10+5*2=20、20>15はtrue、3<4もtrueで論理積はtrue。falseになる根拠がない。 - CJava では優先順位に従って算術・関係・論理演算子を1つの式に自由に混在できる。これは合法な式でコンパイルは通る。
- D
+を*より先に計算した誤り((10+5)*2=30)。乗算*は加算+より優先順位が高いため、先に5*2=10を計算する。
ひっかけ: 優先順位を誤って左から単純に演算すると
(10+5)=15、15*2=30 のように順序を取り違え、比較の対象がズレる。乗除算は加減算より先・算術演算子は関係演算子より先・関係演算子は論理演算子より先という3段階の優先度を意識する。コマンド例と想定される挙動(未実行)
出力: true
公式ドキュメント・関連JLS SE11 §15 Expressions(演算子優先順位の全体構造)↗
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)