[英]Increment variable in loop, unexpected result
代码片段:
int i=0;
for(int i=0;i<1;i++){
i=--i-i--;
System.out.println("for loop i= "+i);
}
System.out.println("i value outside for loop= "+i);
输出:
for loop i= 0
i value outside for loop= 1
for 循环内 i 的值为零,for 循环外 i 的值是 1。能帮我理解一下吗?
i=--ii--;
将i
的值更改为-1
,然后再更改回0
,因为它分配给它-1-(-1)
,即0
。 这个结果的原因是前递减运算符 - --i
- 返回递减的值-1
而后递减运算符 - i--
- 返回递减之前的值(因此它返回-1
而不是-2
) .
但是,循环的i++
子句将i
增加到 1,这会导致循环终止。 因此循环后i
值为1
。
请注意,您的问题中有一个错字。 您在同一范围内两次声明i
。 为了让代码通过编译(并显示您声称获得的输出),您应该将其更改为:
int i=0;
for (i = 0; i < 1; i++) {
i = --i-i--;
System.out.println("for loop i= "+i);
}
System.out.println("i value outside for loop= "+i);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.