-7

第一个索引++ 显示“1”而不是“2”的值。

为什么值不增加?

任何输入都会有所帮助。

    package scratch;

    class Feline {
        {
            index = 1;
        }
            int index;
          public static void main(String[] args) {
              new Feline().go();
          }

         void go(){
             System.out.println(index);
             System.out.println(index++);
             System.out.println(index++);
             System.out.println(index++);
         }
        }

Result:
1
1
2
3
4

2 回答 2

6

因为您使用的++是在要递增的变量之后发生的后递增运算符。它的值是变量的当前值,然后递增。

JLS 15.14.2 涵盖了这一点:

[T] 将值 1 添加到变量的值中,并将总和存储回变量中。

后缀增量表达式的值是存储新值之前变量的值。

它确实会增加 - 在返回当前值之后。

System.out.println(index);

...只是打印1

System.out.println(index++);

... 打印1 然后递增index2.

System.out.println(index++);

... 打印2 然后递增index3.

System.out.println(index++);

... 打印3 然后递增index4.

于 2013-08-27T19:05:34.360 回答
0

这就是 Post Increment 所做的。

         System.out.println(index);
         System.out.println(index++);//printed index and  +1 to the index
         System.out.println(index++);
         System.out.println(index++);
于 2013-08-27T19:06:22.337 回答