ImpressCMS
HOME  >  JSCRIPT  > javascriptの文法 > 様々な演算子 > インクリメント・デクリメント演算子

 4 - 6 - 4 : インクリメント・デクリメント演算子

変数の値を1足すものをインクリメント演算子、1引くものをデクリメント演算子と呼びます。
インクリメント・デクリメント演算子にはそれぞれ2種類の演算子があります。変数aをインクリメント・デクリメントする場合は、
 インクリメント    ++a  (前置インクリメント)        a++(後置インクリメント)
 デクリメント        --a(前置デクリメント)        a—(後置デクリメント)
となります。

なんで2種類も準備するかということになりますが、

・前置インクリメント・デクリメントは、それが記述された瞬間に処理が行われ
・後置インクリメント・デクリメントは、それが記述された行の処理が終わった瞬間に行われる
という違いになります。難しいですね。例題を書いてみましょう。(practice3.html)
 
var a1 = 3;
var a2 = 3;

var b1 = ++a1; // 前置インクリメント
var b2 = a2++; // 後置インクリメント
document.write("b1=" + b1 + ", b2=" + b2 + "<br>");

var c1 = a1;
var c2 = a2;
document.write("c1=" + c1 + ", c2=" + c2 + "<br>");


4行目はb1 = ++a1; です。++a1は、記述された瞬間に処理が行われるわけですから、a1は++a1となった段階で、3から4に1プラスされますので、b1には、4が代入されます。
5行目は、b2 = a2++;です。行の処理が終わるまでは1インクリメントされませんので、b2に代入する処理を行う段階ではまだa2は3です。つまり、b2には3が入ります。

5行目の処理が終わり、6行目の「document.write(...」の処理が始まる直前にa2に1加算され、4になります。

8行目9行目の c1 = a1; c2=a2; はどちらも4になっていますので、cには4が代入されます。
ということでこれの画面は以下のようになります。
 
 
Publish : 2411 bytes - updated 2024-07-17 by 管理人