デクリメント演算子
演算子だよ
今の数字から1を引くよ
変数の前に置く(--num)か後に置く(num--)かで結果が変わる場合があるよ
簡単に書くよ
デクリメント演算子(読:デクリメントエンザンシ 英:decrement operator)とは
プログラミングで出てくる演算子のひとつ
であり
「今の数字から1を引きますよ~」を意味する演算子
です。
演算子の見た目は
「--」(マイナスが2つ)
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・変数
・演算子
・デクリメント
について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
変数は「プログラミング言語における『値を入れておく箱』」です。
処理の途中で値を入れたり、逆に取り出したりできます。
演算子は「どんな演算をするか表す記号」です。
「+」「-」「*(×)」「/(÷)」をはじめ、なんか いろいろ あります。
デクリメントは「今の数字から1を引くこと」です。
ミカン箱からミカンを1つ取り出すイメージですね。
以上を踏まえて
変数の値から1を引くときに使う演算子
が「デクリメント演算子」です。
演算子の見た目は「--」(マイナスが2つ)です。
……と、文章でたらたら説明するよりも例を挙げた方が分かりやすいと思うので、例示しますね。
例えば、以下のような処理が あったとしましょう。
num = 1;
num--;
これは
・変数numに1を入れてください
・変数numの値から1を引いてください
な命令です。
この処理が終わった後、変数numの値は0になっています。
ここで登場した「--」がデクリメント演算子です。
注意点として、デクリメント演算子を書く場所によって処理結果が変わることがあります。
デクリメント演算子は変数の前にも後ろにも置けます。
「--num」と書いたり「num--」と書いたりできるのです。
この2つは違う結果になる場合があります。
専門家の間では、内部的にやっていることが違うので処理速度が違うとかかんとか議論されることもあるようですが、それはひとまず無視しますね。
ここでは純粋に結果が変わる場合を取り上げます。
まずは、PHPで書いた2つの処理を見てください。
<?php
$num = 1;
$ret = --$num;
print $ret;
<?php
$num = 1;
$ret = $num--;
print $ret;
違いは3行目の
$ret = --$num;
と
$ret = $num--;
だけです。
それぞれの処理の結果はどうなると思いますか?
答えは、上の処理の$retの値は「0」になります。
それに対して、下の処理の$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;
と同じ結果になります。
単純に1を引きたいだけであれば、前に置こうと後ろに置こうと大きな違いは ありませんけどね。
一応、覚えておいてください。
カッコ付けて、いろいろな処理を1行で書きたい場合は、意識しておく必要があります。
一言でまとめるよ
まぁ「デクリメント演算子」って単語が出てきたら「見た目は『--』(マイナスが2つ)で、1を引きなさいな演算子なんだな~」と お考えください。
おまけ
■訳してみるよ
「decrement(デクリメント)」の意味は「減少」とか「減少量」とかです。
減らすイメージですね。
「演算子」は日本語です。
何となく くっつけると
減らす演算子
となります。
■検索してみる?






