インクリメント・デクリメントの前置・後置についての復習

Mar 20, 2020

Javascriptにて、インクリメント・デクリメントの前置・後置について解説してみます。

前置と後置で結果が異なる

演算子の前置・後置を理解しないとバグを生んでしまうことがあります。
それは前置と後置で結果が異なる場合があるからです。

以下の問題を解くコードを考えてみてください。

問題 配列に1~9までの整数を代入した変数を作成し、配列内のそれぞれの数値に1を足したものをコンソールに出力してください。ただし、インクリメント演算子を使用し、1行で書いてください。

以下のコードの//insert code hereの場所にコードを記述してください。

let ary = [1,2,3,4,5,6,7,8,9]; 
for(let i = 0; i < ary.length; i++) {
    // insert code here
}

答え

let ary = [1,2,3,4,5,6,7,8,9]; 
for(let i = 0; i < ary.length; i++) {
    console.log(++ary[i]);
}

出力

2
3
4
5
6
7
8
9
10

console.log(++ary[i])の箇所をconsole.log(ary[i]++)に変えるとどうなるでしょうか。
出力としては1,2,3,4,5,6,7,8,9になり、表示では1足されていないことになります。

前置・後置を分かりやすくすると、以下のコードの省略形ということになります。

前置(++i)

ary[i] = ary[i] + 1;
console.log(ary[i]);

後置(i++)

console.log(ary[i]);
ary[i] = ary[i] + 1;

参考
前置と後置 - 演算子 - Java入門

SmokyDog

I love dog and web.

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.