http://leepoint.net/notes-java/data/expressions/precedence.htmlからの一例
次の式
1 + 2 - 3 * 4 / 5
として評価されます
1 + 2 - 3 * 4 / 5
= (1 + 2) - ((3 * 4) / 5)
= 3 - (12/5)
= 3 - 2 The result of the integer division, 12/5, is 2 .
= 1
次に、 http://www.roseindia.net/java/master-java/operator-precedence.shtmlから別の例を見ました
次の式
4 + 5 * 6 / 3
として評価されます
4 + (5 * (6 / 3))
*と/が関係する場合、どちらが最初に評価されるかがどのように決定されるかについて、私は少し混乱しています。上記の例では、どちらも違いがあるようです。
最初の例は次のように評価3*5/5
して((3*4)/5)
いますが、2番目の例は評価しています5*6/3 as (5*(6/3))
*と/が+と-よりも優先されることは知っていますが、式に*と/の両方が含まれている場合はどうでしょうか。また、上記の2つの例が異なるアプローチを示しているのはなぜですか?それらの1つは間違っていますか?
編集
public class ZiggyTest {
public static void main(String[] args) {
System.out.println(4 + (5 * (6 / 3)));
System.out.println(4 + ((5 * 6) / 3));
System.out.println(1 + 2 - (3 * (4 / 5)));
System.out.println(1 + 2 - ((3 * 4) / 5));
}
}
上記のプログラムは出力を生成します
14
14
3
1
最初の出力が同じ出力を生成した場合、最後の2つの出力が同じでないのはなぜですか。