我想知道以下代码如何产生“-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”,但如何?有人能解释一下吗? 提前谢谢!
答案 0 :(得分:1)
i
以-2
开头。您检查i++
是否大于0
。由于-2<0
,这会导致错误。您for loop
条件的后增量会在之后生成值i = -2 + 1
,
答案 1 :(得分:1)
在你的for循环中,for(i=-2,j=2;i++>0;j--)
i
会在比较之前首先递增,当时i
为-1
,因为它不是> 0
它正在退出循环。
答案 2 :(得分:1)
你的答案是因为你写过的for循环。 你的流量不会进入循环。 变量i的初始值为-2,j为2, “for循环”的条件是 - 我应该大于0(因为它的后增量)并且这里你的代码没有进入“for循环”,因为i中的值是-2然后后增量(i ++)发生并且i的值变为-1,它打印出来。 有关详细信息,请参阅pre & post increment
答案 3 :(得分:0)
i=-2;
由于i++>0
是false
(因为-2<0
),它会退出循环。i
后递增为-1
。i
的值-1
。答案 4 :(得分:0)
与运营商优先级无关 。
无论执行i++>0
中的运算符的顺序如何,结果始终相同:当您从i = -2
开始时,结果将为false
,值为i
将是-1