java中运算符优先级的性质

java中运算符优先级的性质,java,loops,operator-keyword,core,Java,Loops,Operator Keyword,Core,我想知道下面的代码如何生成“-1”输出 上述代码生成输出“-1”,但如何生成?有人能解释一下吗? 提前谢谢你 i以-2开头。检查i++是否大于0。这会导致错误,因为-2i以-2开头。检查i++是否大于0。这会导致错误,因为在for循环中,-2对于(i=-2,j=2;i++>0;j-)i将在比较之前首先递增,此时i是-1,并且因为它不是-0,它正在退出循环。对于(i=-2,j=2;i++>0;j-)i将在比较之前首先递增,此时i为-1,并且由于它不是>0,因此退出循环 i=-20是false(因为

我想知道下面的代码如何生成“-1”输出

上述代码生成输出“-1”,但如何生成?有人能解释一下吗?
提前谢谢你

i
-2
开头。检查
i++
是否大于
0
。这会导致错误,因为
-2
i
-2
开头。检查
i++
是否大于
0
。这会导致错误,因为在for循环中,
-2对于(i=-2,j=2;i++>0;j-)
i
将在比较之前首先递增,此时
i
-1
,并且因为它不是
-0
,它正在退出循环。

对于(i=-2,j=2;i++>0;j-)
i
将在比较之前首先递增,此时
i
-1
,并且由于它不是
>0
,因此退出循环

  • i=-2i++>0
    false
    (因为
    -2
    
  • i=-2;
    因为
    i++>0
    false
    (因为
    -2你的答案是因为你写了for循环。
    您的流不会进入循环内部。
    变量i的初始值为-2,j为2,
    “for循环”的条件是-i应该大于0(因为它的后增量),而这里的代码并没有进入“for循环”内部,因为i中的值是-2,然后发生后增量(i++),i的值变成-1,并打印出来。
    
    有关详细信息,请阅读

    您的答案是因为您编写了for循环。 您的流不会进入循环内部。 变量i的初始值为-2,j为2, “for循环”的条件是-i应该大于0(因为它的后增量),而这里的代码并没有进入“for循环”内部,因为i中的值是-2,然后发生后增量(i++),i的值变成-1,并打印出来。 有关详细信息,请阅读与运算符优先级无关的内容

    无论以何种顺序执行
    i++>0
    中的运算符,结果总是一样的:当您从
    i=-2
    开始时,结果将是
    false
    i
    的值将是-1

    与运算符优先级无关

    无论以何种顺序执行
    i++>0
    中的运算符,结果总是相同的:当您以
    i=-2
    开始时,结果将是
    false
    i
    的值将是-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); 
      }
     }