3

値をインクリメントしてから別の変数に格納したい場合、1行のコードでそれを実行できないのはなぜですか?

これは動作します

var count = 0;
count++;
var printer = count;
alert(printer); //Prints 1

しかし、これはしません

var count = 0;
var printer = count++;
alert(printer); //Prints 0
4

4 に答える 4

10

ポストインクリメント演算子を使用しています。インクリメントは、代入式が完了した後に発生します。

代わりに、プリインクリメントバージョンを使用してください...

++count;

または、+=演算子を使用します...

count += 1;
于 2012-08-09T14:10:39.470 に答える
5

あなたがする必要があります

var count = 0;
var printer = ++count;
alert(printer); 

w3schoolsページのJavaScriptArithmeticOperatorsセクションには、TryMeラボでまともな内訳があります。つまり、変数の前にインクリメント/デクリメント操作を行うと、現在の操作で使用される前に発生します。後で含めると、現在の操作の後に発生します。

于 2012-08-09T14:10:38.847 に答える
1

1行で実行できます。

//Example 1
var count = 0;
count++;
var printer = count;
alert(printer); //Prints 1

//Example 2
var count2 = 0;
var printer2 = count2++;
alert(printer2);   //Prints 0
printer2 = count2++;
alert(printer2);   //Prints 1

// Example 3, in one line
var count2 = 0;
var printer2 = count2 + 1;
alert(printer2);   //Prints 1

// Example 4, in one line
var count2 = 0;
var printer2 = ++count2;
alert(printer2);   //Prints 1
于 2012-08-09T14:15:49.223 に答える
0

++使用する場所に応じて結果を変更します。

 y = 0;
 x = y++; // post-increment

と同等です

 y = 0;
 x = y;
 y = y + 1;

 x = ++y; // pre-increment

と同等です

 y = 0;
 y = y + 1;
 x = y;
于 2012-08-09T14:12:55.350 に答える