【发布时间】:2018-12-25 08:25:28
【问题描述】:
我预计变量的后增量和前增量以及将结果分配给自身会有所不同。但是,虽然后者按预期工作,但前者作为无限 while 循环运行。有人可以指出我在这里缺少什么吗?
int y = 0;
int z = 4;
while(y<z)
{
System.out.println(y);
y =y++;//this prints 0 infinite times, shouldn't why be assigned values 0,1,2,3 with each pass?
//y =++y;//this works as expected
}
谢谢
【问题讨论】:
-
只需使用
y++。 -
我认为正在发生的事情是这样的:1)
y的临时值存储在某处,2)y加一,然后 3)y被分配回临时价值。因此,y的值实际上从未改变。无论如何,谁有一个完全相同的副本,请随意锤击。
标签: java