- class test1
- {
- public static void main(String[] args)
- {
- int a=4;
- int b=5;
- b -= a = (b += a) - a;
- System.out.println(a+"....b="+b);
- }
- }
复制代码 这是刚才一个同学问的,怎么样用一行代码把a和b的只调换,然后想出来了b -= a = (b += a) - a;这个,可是计算结果是b等于0,
我想的是括号里面的是把b和a的值赋值给b也就是4+5=9赋值给b,然后用b-a赋值给a也就是9-4=5赋值给a,得出a=5,然后算前面的b-=a,也就是b-a赋值给b,即9-5=4赋值给b,最后得出结果是4,但是计算机计算的结果是0.想不明白,知道是优先级的问题, 问题出在(b += a),难道这里不赋值给b吗?
|