空想曲線

吉里吉里2/KAG3でのゲーム制作に使える小ネタ置き場。ゲーム用素材も置いてます。

吉里吉里/KAG:前置と後置ってどう違うの?  

2012-10-19
2017-06-14
cm0
tb0

吉里吉里/KAG小ネタシリーズ。

いきなりですが問題です。
次のスクリプトを実行したときのf.bの値をそれぞれ答えなさい。

問1)
f.a = 3;
f.b = 0;
f.b = f.a++;


問2)
f.a = 3;
f.b = 0;
f.b = ++f.a;

「問1も問2もじゃないの?」と答えた方向けの小ネタです。

f.a の後ろについてる「++」は後置インクリメント演算子です。
f.aに1を足しなさいという処理を命令しています。

f.aの前についてる「++」は前置インクリメント演算子です。
f.aに1を足しなさいという処理を命令しています。

このふたつは同じ処理に見えますが全然違います

前置の場合は先に右辺が評価されます。
f.a = 3;
f.b = ++f.a;

先に右辺を評価するのでf.a=f.a+1=4
このあとでf.b に f.a を代入するので f.b=4 となります。
これが問2の答です。

一方、後置の場合は右辺の評価が後になります。
f.a = 3;
f.b = f.a++;

f.bにf.aを代入してからf.aに1を足します。
なので、f.b = 3が問1の答です。

正直なところ、自分の作ってるゲームでは使いどころがないのですが
そのうち役に立つ日が来るかも知れないと思って書き残しておきます。


関連記事

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://kopacurve.blog33.fc2.com/tb.php/272-f10396e6
この記事にトラックバックする(FC2ブログユーザー)

Author

Recent

Category

Link

Comment

Mailform

Twitter