[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

「前置インクリメント(++num)」と「後置インクリメント(num)++」の違い

スポンサーリンク

予備知識


用語意味
インクリメント今の数字に1を足すこと
演算子「どんな演算をしてくださいね」を表現する記号
インクリメント演算子プログラミングで出てくる演算子の一つで「今の数字に1を足しますよ~」な加算を意味する演算子
変数プログラミング言語における「値を入れておく箱」

それぞれの用語の意味


用語意味
前置インクリメント「++num」のような、インクリメント演算子を変数の前に置く書き方の便宜上の呼び名
後置インクリメント「num++」のような、インクリメント演算子を変数の後ろに置く書き方の便宜上の呼び名

似ているところ


どちらも、インクリメント演算子です。
演算後、変数の値に1加算されています。


違うところ


1加算されるタイミングが違います。

実際に例を挙げて説明しますね。
まずは、PHPで書いた2つの処理を見てください。

<php
$num = 1;
$ret = ++$num;
print $ret


<php
$num = 1;
$ret = $num++;
print $ret


違いは3行目の

$ret = ++$num;



$ret = $num++;

だけです。

それぞれの処理の結果はどうなると思いますか?

答えは、上の処理の$retの値は「2」になります。
それに対して、下の処理の$retの値は「1」のままです。

どうしてでしょうね?

実は

$ret = ++$num;



$ret = (++$num);

っぽいイメージになります。
$numに1を足して、その結果が$retに入れられるのです。

$num = $num + 1;
$ret = $num;


と同じ結果になります。

それに対して

$ret = $num++;



($ret = $num)++;

っぽいイメージです。
$numの値を$retに代入して、その後で$numに1が足されるのです。

$ret = $num;
$num = $num + 1;


と同じ結果になります。


個人的な使い分け


基本的には後置インクリメント(num++)を使います。
特に理由はありませんが、参考書などの例文を見ると後置インクリメント(num++)を使っていることが多いように感じられるからです。
よっぽどのことがない限り前置インクリメント(++num)は使いません。

というか、後置インクリメント(num++)と前置インクリメント(++num)で処理結果が変わるような場合は、分けて書きます。

$ret = ++$num;

ではなく

$num++;
$ret = $num;




$num = $num + 1;
$ret = $num;


と書くようにしています。

ですから、前置インクリメント(++num)は、ほとんど使ったことがありません。


スポンサーリンク