-1

后自增算子的控制流程是什么?

public class PostIncrement
{
    public static void main(String[] args)
    {

        int a = 0;
        for(int i=0;i< 2 ;i++)
        {
            a =a++;     
        }

        for(int i=0 ;i< 1;i++)
        {
            a++;
        }

        System.out.println("Result2 :"+" "+a);        
    }

}

结果就像 0 和 1

为什么会这样?

4

2 回答 2

0

a++ 将首先在该特定语句中使用 a 的值,然后将其递增。

例如。

a=0;
sysout(a++);
sysout(a);

结果将是 0 和 1。

因此,在您的情况下,如果您将第二个 for 循环编写为

      for(int i=0 ;i< 1;i++)
         {
              sysout(a++);
         }

它将打印 0 和 0 和 1。

于 2013-05-21T08:36:11.007 回答
0

后缀运算符++在语句完成后执行。

第一次打印它的值a时打印为零,因为没有任何变化。接下来,您进入一个执行一次的 for 循环,增加 a 的值。实际上它是后增量并不重要,因为该语句中没有其他指令。的值a现在是1

你打印出来1

顺便说一句,您的代码实际上不起作用,因为内部变量i隐藏了外部变量,因此您将收到编译器错误以重新声明i. 我假设您在这里指的是不同的变量,例如j.

于 2013-05-21T08:32:00.423 回答