今天偶尔看了看这样一个问题:
public class TestUnit {
public static void main(String[] args) {
int temp = 0;
int num = 1;
int num2 = 2;
int num3 = 3;
System.out.println(temp=num=num2=num3);
System.out.println(temp);
System.out.println(num);
System.out.println(num2);
System.out.println(num3);
//输出:全是3,连串赋值是怎么运算的呢?
}
}
借鉴一段网络讲解:赋值运算符有一个有趣的属性,你或许并不熟悉:它答应你对一连串变量赋值。例如,请看下面的例子:
int x,y,z; x = y = z = 100; // set x,y,and z to 100
该例子使用一个赋值语句对变量 x、y、z 都赋值为100。这是因为“=”运算符产生右边表达式的值,因此 z = 100 的值是 100,然后该值被赋给 y ,并依次被赋给 x 。使用“串赋值”是给一组变量赋同一个值的简单办法。
由此可见,在运算 temp=num=num2=num3 时,是先由前先后遍历,再由后向前赋值;