-7

最初の index++ は、「2」ではなく「1」の値を表示します。

値が増加しないのはなぜですか?

どんな入力も役に立ちます。

    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 に答える