java增量变量在循环中,意外结果
代码片段:
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
循环内i的值为零,循环外i的值为1。你能帮我理解吗
你可以在下面搜索框中键入要查询的问题!
代码片段:
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
循环内i的值为零,循环外i的值为1。你能帮我理解吗
# 1 楼答案
i= i-i ;
将i
的值更改为-1
,然后返回0
,因为它将-1-(-1)
赋值给它,即0
。产生此结果的原因是,预减量运算符i
返回减量后的值-1
,而后减量运算符i
返回减量前的值(因此它返回-1
,而不是-2
)但是,循环的
i++
子句将i
增加到1,这会导致循环终止。因此i
的值是循环后的1
请注意,你的问题中有一个拼写错误。您在同一范围内两次声明
i
。为了让代码通过编译(并显示您声称获得的输出),您应该将其更改为: