2016-06-02 5 views
-2

私が質問java number ++の問題点は何ですか?

public class Baz { 
    public static void main(String[] args) { 
     int num = 5; 
     for(int i=0 ;i < 4 ; i++) { 
      num = num++; 
     } 
     System.out.println("Value is :" + num); 
    } 
} 

結果プリント値を5、何が起こるれるが、これを見つけ試してみましたか?

答えて

0

numが++、次のようにあなただけのやるべき+1

NUM = NUM​​と同じです:

public class Baz { 
    public static void main(String[] args) { 
     int num = 5; 
    for(int i=0 ;i < 4 ; i++) { 
     num++; 
    } 
    System.out.println("Value is :" + num); 
} 

}

+2

番号::num++だからあなたにあなたのコードを変更する必要がnum = num + 1

に等しい 'NUM = NUM​​ ++は、' 'NUM = num'と同じです。 –

+0

はい、num ++はnum = num +1と同じです、それは私が言ったことです – SCouto

+0

No:この式で割り当てられる値は、インクリメントされる前のnumの値です。これがポスト・インクリメントとプリ・インクリメントの違いです。 –

2
num = num++; 

num = num; 
と同じです

数値は式num++は、numの値の前に、の前にインクリメントされます。 num++numをインクリメントの副作用を有するが、それはすぐに割り当て、このよう

によって戻されるので、numの値は不変のままです。

2
num = num++; // don't do this 

num++変数をインクリメントし、それは最初にnum =によって変数に割り当てられている現在の値に評価されます。インクリメントされた値は破棄されます。

他の言語(Cなど)では、これも未定義の動作です。

0

num = num++は意味がありません。

public class Baz { 
    public static void main(String[] args) { 
     int num = 5; 
     for(int i=0 ;i < 4 ; i++) { 
      num++; 
     } 
     System.out.println("Value is :" + num); 
    } 
} 
関連する問題