java /= 运算符中的操作优先级
Priority of operations in java /= operator
我在java中有以下代码,我明白/=的目的是什么。
我的问题是为什么代码在除法之前先执行 4-1。
int a = 20;
a /= 4-1;
如果我写出a = a/4-1;
我得到4,上面的代码给出6。
因为Java中的赋值运算符“=”优先。让我们重写它以使其清楚:
int a = 20;
a /= 4-1;
可能是:
int a = 20;
a = a / (4-1);
这不同于:
int a = 20;
a = (a / 4) -1;
如果你这么认为,“+=”也一样:
int a = 20;
a += 3*2;
这里首先是:
int a = 20;
a = a + 3*2;
而不是:
int a = 20;
a += (a + 3) *2;
我在java中有以下代码,我明白/=的目的是什么。 我的问题是为什么代码在除法之前先执行 4-1。
int a = 20;
a /= 4-1;
如果我写出a = a/4-1;
我得到4,上面的代码给出6。
因为Java中的赋值运算符“=”优先。让我们重写它以使其清楚:
int a = 20;
a /= 4-1;
可能是:
int a = 20;
a = a / (4-1);
这不同于:
int a = 20;
a = (a / 4) -1;
如果你这么认为,“+=”也一样:
int a = 20;
a += 3*2;
这里首先是:
int a = 20;
a = a + 3*2;
而不是:
int a = 20;
a += (a + 3) *2;