我想知道为什么第一个代码输出是000而第二个是123
第一:
int z=0;
while(z<4)
{
z=z++;
System.out.print(z);
}
Run Code Online (Sandbox Code Playgroud)
第二个 :
int z=0;
int x=0;
while(z<5)
{
x=z++;
System.out.print(x);
}
Run Code Online (Sandbox Code Playgroud)
这两个代码有什么不同,为什么第一个块不增加z的值?
增量运算符已递增z,您不必返回返回值z.
z++
Run Code Online (Sandbox Code Playgroud)
是一个后期增量.它返回z,然后它递增z.在您的第一个示例中,您基本上只是将0分配给z,并且您的循环不应该结束.
在第二个示例中,您将z的旧值分配给x,然后增加z.这意味着您不会像第一个示例那样再次开始递增0,但是当z达到5(因此z <5为假)时,由于后递增,z为5,x为4.