2016-06-17 9 views

答えて

4

ポストインクリメント演算子は、の古い値を返し、インクリメントします。同じ変数に割り当てを戻すことで、変数に対する増分を破棄します。

あなたは

currentSongNumber = currentSongNumber++; 

を行うときだから、次のコードと同等です:ちょうど自宅でこれをしようとし

int oldValueOfCurrentSongNumber = currentSongNumber; 
currentSongNumber = currentSongNumber + 1; 
currentSongNumber = oldValueOfCurrentSongNumber; // This is because of your assignment 
+0

なぜ古い値を割り当てるのか –

1

このコードを試してみてください: currentSongNumber ++;

1

あなたはあなたがポストインクリメントを使用している

++currentSongNumber; 
1

この

currentSongNumber = ++currentSongNumber; 

またはこの

currentSongNumber++; 

またはこれを試してみてくださいので、どちらか

ポストインクリメント

を使用しているため。プリインクリメントとポストインクリメントの違いについては、 hereをクリックしてください。あなたのコードでプリインクリメントを試してみてください。

++currentSongNumber;

これは、あなたに必要な出力が得られます。

コードでは、最初にcurrentSongNumber = currentSongNumber++;を使用すると、currentSongNumberの値がそれ自体に割り当てられます。これは前と同じで、増分が行われます。

混乱を避けるために、単にcurrentSongNumber = currentSongNumber+1;を使用することもできます。

+0

'++'は 'currentSongNumber ++'だけを書くことを許す構文的砂糖です。あなたは、この役に立たない感情をOPに書くように勧めてはいけません。 '++ currentSongNumber'または' currentSongNumber ++ 'で十分です。 –

1

Log.d ("Playlist", "Current Song Number is: "+ currentSongNumber); 

    currentSongNumber++; 

    Log.d ("Playlist", "Current Song Number has changed to: "+ currentSongNumber); 
関連する問題