今回も問題を解いていきましょう。
問題
以下のJavaプログラムを実行した場合、出力される結果はどれでしょうか?適切な回答を選んでください。
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 5;
int c = 2;
int result = a - b * c + (b + c)/c;
System.out.println(result);
}
}
選択肢
- A. 13
- B. 12
- C. 8
- D. 11
答えと解説
回答を見る
答え
B. 12
解説
基本説明:
今回のコードでは、Javaの演算子の優先順位を正しく理解することが求められます。演算子には決まった優先順位があり、それに従って計算が行われます。特に、掛け算や割り算は足し算や引き算よりも優先的に実行されます。具体的には、b * c
がまず計算され、その後に(b + c) / c
が計算されます。
誤答理由:
多くの方が見落としやすいポイントは、演算子の使用時にどの計算が先に行われるかという順序です。「なぜその選択肢が間違っているか」の理由は、演算子の優先順位に沿って計算が行われていないという誤解にあります。
つまずきポイント:
コード中の(b + c) / c
では括弧が使われていますが、これは演算を囲って優先順位を意図的に変えるためのテクニックです。この例で(b + c)
が優先され、さらにその結果に対して割り算が実行される点がつまずきやすい部分となります。
発展知識:
この問題を通して学べるのは、括弧を用いることで意図的に演算の順序を変えられるという重要なスキルです。さらに、演算子の優先順位を把握しておくことは、より高度で複雑なプログラムを理解するために欠かせない知識となります。