增量运算符java

use*_*619 -7 java

第一个索引++显示值"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
Run Code Online (Sandbox Code Playgroud)

rge*_*man 6

因为您正在使用在增量++变量之后发生的后增量运算符.它的值是变量的当前值,之后会发生增量.

JLS 15.14.2涵盖了这个:

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

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

它会增加 - 在返回当前值之后.

System.out.println(index);
Run Code Online (Sandbox Code Playgroud)

......只是打印1.

System.out.println(index++);
Run Code Online (Sandbox Code Playgroud)

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

System.out.println(index++);
Run Code Online (Sandbox Code Playgroud)

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

System.out.println(index++);
Run Code Online (Sandbox Code Playgroud)

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