代码段:
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的值是零,而在i循环中,i的值是1。
答案 0 :(得分:1)
i=--i-i--;
将i
的值更改为-1
,然后又返回到0
,因为它为其分配了-1-(-1)
,即{{1} }。产生此结果的原因是,前减运算符-0
-返回减小后的值--i
,而后减运算符--1
-在减小前返回值(因此返回i--
代替-1
)。
但是,循环的-2
子句将i++
递增为1,这导致循环终止。因此,循环后i
的值为i
。
请注意,您的输入中有错字。您在同一范围内两次声明1
。为了使代码通过编译(并显示您声称得到的输出),应将其更改为:
i