Java =运算符在三个整数上使用两次时做什么?
这有什么用Java =运算符在三个整数上使用两次时做什么?,java,Java,这有什么用 int x = 1; int y = 2; int z = 3; x = y = z; 我在一些开源项目中遇到过很多类似的事情,并且总是被它们弄糊涂。我所说的=运算符是指在三个整数上使用两次,即x=y=z。我需要明白这一点。谢谢 运算符=计算右侧,并将结果分配给左侧的变量。表达式返回此值 要使其工作,评估将从右向左进行: x = (y = z); y变为3,返回的值为3。因此,x也被分配为3。=从右向左求值 x=y=z将使x和y等于z,即=3请阅读一些规范: There are
int x = 1;
int y = 2;
int z = 3;
x = y = z;
我在一些开源项目中遇到过很多类似的事情,并且总是被它们弄糊涂。我所说的=运算符是指在三个整数上使用两次,即
x=y=z代码>。我需要明白这一点。谢谢 运算符=
计算右侧,并将结果分配给左侧的变量。表达式返回此值
要使其工作,评估将从右向左进行:
x = (y = z);
y
变为3,返回的值为3。因此,x
也被分配为3。=
从右向左求值
x=y=z
将使x
和y
等于z
,即=3
请阅读一些规范:
There are 12 assignment operators; all are syntactically right-associative (they group right-to-left). Thus, a=b=c means a=(b=c), which assigns the value of c to b and then assigns the value of b to a.
另见:
在大多数语言中,=
代表赋值运算符,规则是赋值运算符的左侧必须是变量/对象。(您也可以这样做object1=object2
,但是object2
的引用将是此处的值)
您不能执行2=3
或2=2
这里发生的是您首先将z的值赋值为y
x=y=z
y=z
x=y
这里它是从右到左计算的,因此y
取z
的值,而x
取y
这里可能需要注意的是,您不能直接执行x=4=5
It must be variable=variable=(value/variable)<------------------
必须是variable=variable=(value/variable)=
运算符将右侧表达式的值分配给左侧的变量。
因此,在x=y=z
中,z
的第一个值将分配给y
,然后分配给x
。
STEP 1 : x=(y=z) /assign value of z to y.
STEP 2 : x=y /assign value of y to x.
因此x的值将是3。赋值运算符始终计算右侧表达式,使您的语句等价于
//this expression is equal to
x=y=z;
y=z;
x=y;
//so first y becomes 3 and the value assign to x
//means first assign the value of z to y than assign the value of y to x
x=y=z
与x=(y=z)
首先,y被赋值为z的值,即e3,然后结果被赋值为x
最后,值将是从右到左计算的x=3
、y=3
和z=3
运算符
所以,当您编写x=y=z
时,它从右手侧到左手侧起作用
1。y=z,即z的值分配给y
2。然后x=y,即y的新值现在分配给x
比如说,
如果x=1、y=2和z=3,则在x=3、y=3和z=3的值之后
以这种方式分配值
x=y=z试试看!!!使用打印值并检查。。或者,如果您使用像eclipse或netbeans这样的IDE,则使用调试模式。