演算子の使用について理解を深めるための問題に挑戦しましょう。
目次
問題
次の式を評価した場合、どのような結果が出力されるでしょうか?正しいものを選んでください。
public class OperatorTest {
public static void main(String[] args) {
int result = 1 + 2 * 3 / 2 - 5;
System.out.println(result);
}
}
選択肢
- A. 0
- B. 1
- C. 2
- D. 3
答えと解説
回答を見る
答え
B. 1
解説
基本説明:
演算子には優先順位があり、かっこがない場合、優先順位に従って計算が行われます。Javaでは、掛け算(*)
と割り算(/)
は足し算(+)
や引き算(-)
よりも優先されます。
このため、式を左から右に計算するにあたり優先度が高い演算子から処理されます。今回の式でまず見るべきは2 * 3
が先に計算され、その後結果が/ 2
で割られ、最後に+ 1
と- 5
が行われます。
誤答理由:
選択肢に0や3を選んでしまうのは、計算の順序を間違えている場合があります。例えば、単純に左から順に計算してしまうと、1 + 2 = 3
になり、次に3 * 3 = 9
…と、間違った計算に進むことがあります。
つまずきポイント:
演算順序の優先順位を明確に意識する必要があります。もし不安がある場合は、括弧()
を使って計算の優先度を明示的に指定し、計算チェックをしやすくする方法もあります。
このコードで言うと、式部分を(1 + (2 * 3) / 2) - 5
のようにかっこで囲むことを意識すると良いでしょう。
発展知識:
算術演算子の他にも、優先順位に関係する演算子には、論理演算子や比較演算子があります。それぞれの優先順位を理解しておくことで、より複雑な式を解釈する際に役立ちます。
更に、Javaにおける優先順位は様々なプログラム言語でも共通する点が多いため、この点を深掘りして学ぶことで、他のプログラミング言語を学ぶ際にも役立つ知識となります。