我在解释下面的程序时做了很多尝试,但没有说明问题。
class Example{
static int a = 9;
public static void main(String...args) {
System.out.println(a + 3 + 3 * m1() + a* m1() + 1 + a);
}
static int m1(){
return (a =2);
}}
答案 0 :(得分:2)
您必须按操作顺序分组,并认为a
是静态字段;因此,一旦更新,它将保持更新状态(为2),直到有其他修改为止:
9 + 3 + (3 * 2) + (2 * 2) + 1 + 2
12 + 6 + 4 + 3
18 + 7
25
答案 1 :(得分:1)
您可以看到运算符优先级顺序here。
执行程序时,它将从左到右开始操作。调用m1()
时,您分配a=2
并返回此值。所以在a = 2之后,您的方程式如下:
9 + 3 + 3 * 2 + 2 * 2 + 1 + 2
9 + 3 + 6 + 4 + 1 + 2
25