我想知道下面的代码如何产生“-1”输出。
class Demo1
{
public static void main(String[] arg)
{
int i,j;
for(i=-2,j=2;i++>0;j--)
{
i=++i;
}
System.out.print(i);
}
}
上面的代码产生输出“-1”,但是如何产生呢?谁能解释一下吗? 预先感谢您!
在 for 循环中
for(i=-2,j=2;i++>0;j--)
i
将在比较之前首先递增,此时 i
是 -1
,并且由于它不是 > 0
,因此它正在退出循环。
i
以 -2
开头。您检查 i++
是否大于 0
。从-2<0
开始,这会导致错误。 for loop
条件的后增量随后会产生值 i = -2 + 1
,
你的答案是因为你写了for循环。 您的流程不会进入 for 循环。 变量 i 的初始值为 -2 , j 为 2 , “for 循环”的条件是 - i 应该大于 0(因为其后增量),并且这里您的代码没有进入“for 循环”,因为 i 中的值是 -2,然后发生后增量(i++)并且i 的值变为 -1 并且如此打印。 欲了解更多详情,您可以阅读前后增量
i=-2;
由于 i++>0
是 false
(因为 -2<0
),它退出循环。i
后递增为 -1
。i
的值,即 -1
。与运算符优先级无关。
无论
i++>0
中的运算符以何种顺序执行,结果始终相同:当您从 i = -2
开始时,结果将为 false
并且 i
的值将为 -1