◇ (+ )(- ) 関数を使っても、変数の値が変わらない
Q:次のようなマクロを実行しても、変数 %count の数字が変わってくれません。どうしてでしょう?
if (< %count 100) then ; %count が100未満なら、
(+ %count 100) ; 100 を足して
(message %count) ; 変数の値を表示
endif
A:「(+ %count 100)」だけでは「計算する」だけで、「変数の値に代入する」が行われないためです。
たとえばですが、変数xにy−zを代入したいのなら、「x=y−z」と書きますよね。そしてその場合、yの値は変わりません。同じ様に、
(+ %count 100)
も、これだけでは「%count に 100 を足した数字を計算する」だけで、%count の中身は変わらないんです(上の例では「y−z」と書いただけ、に当たる)。%count の中身を変えたいのであれば、
set %count (+ %count 100)
としなければなりません。このあたり、勘違いしやすいところとは思いますが。