算術演算子は以下の通りです。
算術演算の種類 |
演算子 |
使用例 |
加算 |
+ |
a = a + 2; |
減算 |
- |
a = a - 1; |
符号の反転 |
~ |
a = ~a; |
乗算 |
* |
a = a * 2; |
除算 |
/ |
a = a / 2; |
後置インクリメント |
++ |
a++; |
前置インクリメント |
++ |
++a; |
後置デクリメント |
-- |
a--; |
前置デクリメント |
-- |
--a; |
インクリメントとデクリメントは変数に対してのみ使用出来ます。
定数に対しては使用出来ません。
前置インクリメント・前置デクリメントは変数が式で使われる前に演算されます。
後置インクリメント・後置デクリメントは変数が式で使われた直後に演算されます。
特記事項
サンプルソース:
int i=5;
int k= i++ + ++i;
上記サンプルソースを他のプログラミング環境(ボーランドC++等)で動かすと、演算に問題が発生する事があります。
一般的に計算順序はコンパイラに依存します。
後置インクリメント(デクリメント)の実行には2種類の方法があります。
◆パターン1、後置インクリメントは全ての式を計算した後に変数に適用する。
◆パターン2、後置インクリメントは変数の演算直後に適用する。
MQL4ではパターン1になります。
この特徴を知っていたとしても、この使用方法は推奨されません。
コンパイラに依存するコーディングは止めた方が良いです。
上記の様な1つの式中に複数インクリメントを使用するのはソース的にも見難くなり、デバッグ時に混乱を招きます。