代入演算子
代入演算子は、最も単純で最も一般的に使用される演算子です。
代入演算子の形式
代入演算子は、文字「=」(等号)を含むレコードを表します。 この等号記号の左側に変数の名前を指定し、変数の右側に式を指定します。 代入演算子は ";"で終了します。 (セミコロン)。
1 |
<span class="notranslate">変数<b>=</b>式<b>;</b></span> <span class="notranslate"> //代入演算子</span> |
等号の存在によって、代入演算子をプログラムのテキスト内の他の行と区別することができます。 式として、定数、変数、関数呼び出し、またはそのような式を指定できます。
代入演算子の実行
等式記号の右側の式の値を計算し、等号の左側に指定された変数に取得した値を代入します。 |
代入演算子は、他の演算子と同様に実行可能です。 これは、代入演算子を構成するレコードがルールに従って実行されることを意味します。 演算子を実行すると、右部分の値が計算され、等号の左側の変数に代入されます。 代入演算子の実行の結果、左辺の変数は常に新しい値をとります。 この値は、変数の前の値と同じでも異なっていてもかまいません。代入演算子の右部分の式は、演算の順序に従って計算されます(「 演算と式 」を参照)。
代入演算子の例
代入演算子では、変数の型を等号の左側に宣言することができます。
1 2 3 4 5 6 |
<span class="notranslate"> <span class="hl-reserved">int</span> <span class="hl-code">=</span> <span class="hl-number">3</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//定数値は変数Inに代入されます</span></span> <span class="notranslate"> <span class="hl-reserved">二重</span> <span class="hl-identifier">Do</span> <span class="hl-code">=</span> <span class="hl-number">2.0</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//</span> <span class="hl-comment">変数</span> <span class="hl-comment">Doに</span> <span class="hl-comment">定数値が代入されます</span></span> <span class="notranslate"> <span class="hl-reserved">ブール</span> <span class="hl-identifier">Bo</span> <span class="hl-code">=</span> <span class="hl-reserved">真</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//</span> <span class="hl-comment">定数</span> <span class="hl-comment">Bo</span> <span class="hl-comment">を変数</span> <span class="hl-comment">Bo</span> <span class="hl-comment">に代入する</span></span> <span class="notranslate"> <span class="hl-reserved">カラー</span> <span class="hl-identifier">Co</span> <span class="hl-code">=</span> <span class="hl-number">0</span> <span class="hl-identifier">x008000</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//</span> <span class="hl-comment">定数</span> <span class="hl-comment">Co</span> <span class="hl-comment">を変数</span> <span class="hl-comment">Co</span> <span class="hl-comment">に代入する</span></span> <span class="notranslate"> <span class="hl-reserved">文字列</span> <span class="hl-identifier">St</span> <span class="hl-code">= "</span> <span class="hl-identifier">sss</span> <span class="hl-code">";</span></span> <span class="notranslate"> <span class="hl-comment">//</span> <span class="hl-comment">定数</span> <span class="hl-comment">St</span> <span class="hl-comment">は変数</span> <span class="hl-comment">st</span> <span class="hl-comment">に代入されます</span></span> <span class="notranslate"> <span class="hl-reserved">日時</span> <span class="hl-identifier">Da</span> <span class="hl-code">=</span> <span class="hl-identifier">D</span> <span class="hl-number">'01.01.2004</span> <span class="hl-code">';</span></span> <span class="notranslate"> <span class="hl-comment">//</span> <span class="hl-comment">定数</span> <span class="hl-comment">Da</span> <span class="hl-comment">を変数</span> <span class="hl-comment">Da</span> <span class="hl-comment">に代入する</span></span> |
以前に宣言された変数は、型を指定せずに代入演算子で使用されます。
1 2 3 |
<span class="notranslate"> <span class="hl-identifier">In</span> <span class="hl-code">=</span> <span class="hl-number">7</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//</span> <span class="hl-comment">定数値は変数</span> <span class="hl-comment">In</span> <span class="hl-comment">に代入されます</span></span> <span class="notranslate"> <span class="hl-identifier">Do</span> <span class="hl-code">=</span> <span class="hl-number">23.5</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//</span> <span class="hl-comment">変数</span> <span class="hl-comment">Doに</span> <span class="hl-comment">定数値が代入されます</span></span> <span class="notranslate"> <span class="hl-identifier">Bo</span> <span class="hl-code">=</span> <span class="hl-number">0</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//</span> <span class="hl-comment">定数</span> <span class="hl-comment">Bo</span> <span class="hl-comment">を変数</span> <span class="hl-comment">Bo</span> <span class="hl-comment">に代入する</span></span> |
代入演算子では、変数の型は等号の右部分で宣言することはできません。
1 2 |
<span class="notranslate"> In = int In_2;</span> <span class="notranslate"> //変数の型を右側の部分で宣言できない</span> <span class="notranslate"> Do =二重Do_2;</span> <span class="notranslate"> //変数の型を右側の部分で宣言することはできません</span> |
代入演算子では、変数の型は繰り返し宣言することはできません。
1 2 |
<span class="notranslate"> int;</span> <span class="notranslate"> //変数の型の宣言In</span> <span class="notranslate"> int In = In_2;</span> <span class="notranslate"> //変数(In)の型の繰り返し宣言は許されません</span> |
右側の部分でユーザー定義関数と標準関数を使用する例:
1 2 3 4 5 |
<span class="notranslate"> <span class="hl-identifier">In</span> <span class="hl-code">=</span> <span class="hl-identifier">My_Function</span> <span class="hl-brackets">()</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//ユーザ定義関数の値が変数Inに代入される</span></span> <span class="notranslate"> <span class="hl-identifier">Do</span> <span class="hl-code">=</span> <span class="hl-identifier">Gipo</span> <span class="hl-brackets">(</span> <span class="hl-identifier">Do1</span> <span class="hl-code">、</span> <span class="hl-identifier">Do1</span> <span class="hl-brackets">)</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//</span> <span class="hl-comment">ユーザー定義関数の値が変数</span> <span class="hl-comment">Do</span> <span class="hl-comment">に代入されます</span> <span class="hl-comment">。</span></span> <span class="notranslate"> <span class="hl-identifier">Bo</span> <span class="hl-code">=</span> <span class="hl-predfunc">IsConnected</span> <span class="hl-brackets">()</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//</span> <span class="hl-comment">標準関数の値が</span> <span class="hl-comment">変数</span> <span class="hl-comment">Bo</span> <span class="hl-comment">に代入されます。</span></span> <span class="notranslate"> <span class="hl-identifier">St</span> <span class="hl-code">=</span> <span class="hl-predfunc">ObjectName</span> <span class="hl-brackets">(</span> <span class="hl-number">0</span> <span class="hl-brackets">)</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//</span></span> <span class="notranslate"> <span class="hl-comment">標準関数の値は</span> <span class="hl-comment">変数</span> <span class="hl-comment">St</span> <span class="hl-comment">に代入されます</span></span> <span class="notranslate"> <span class="hl-identifier">Da</span> <span class="hl-code">=</span> <span class="hl-predfunc">TimeCurrent</span> <span class="hl-brackets">()</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//</span></span> <span class="notranslate"> <span class="hl-comment">標準関数の値は</span> <span class="hl-comment">変数</span> <span class="hl-comment">Da</span> <span class="hl-comment">に代入されます</span></span> |
右部分に式を使用する例:
1 2 3 4 |
<span class="notranslate"> <span class="hl-identifier">In</span> <span class="hl-code">=</span> <span class="hl-brackets">(</span> <span class="hl-identifier">My_Function</span> <span class="hl-brackets">()</span> <span class="hl-code">+</span> <span class="hl-identifier">In2</span> <span class="hl-brackets">)</span> <span class="hl-code">/</span> <span class="hl-number">2</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//変数Inが代入されます。</span></span> <span class="notranslate"> <span class="hl-comment">// .. with expressionの値</span></span> <span class="notranslate"> <span class="hl-identifier">Do</span> <span class="hl-code">=</span> <span class="hl-predfunc">MathAbs</span> <span class="hl-brackets">(</span> <span class="hl-identifier">Do1</span> <span class="hl-code">+</span> <span class="hl-identifier">Gipo</span> <span class="hl-brackets">(</span> <span class="hl-identifier">Do2,5</span> <span class="hl-brackets">)</span> <span class="hl-code">+</span> <span class="hl-number">2.5</span> <span class="hl-brackets">)</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//</span> <span class="hl-comment">変数</span> <span class="hl-comment">Doが割り当てられます。</span></span> <span class="notranslate"> <span class="hl-comment">// .. with expressionの値</span></span> |
代入演算子の計算では、型キャストの規則が適用できます(型キャストを参照)。
短縮形の代入演算子の例
MQL4では、代入演算子を構成する短い形式も使用されます。 代入演算子 " = "(等号)(「 演算と式 」を参照)以外の代入演算を使用する代入演算子の形式です。 ショートフォームオペレータも同じルールと制限を受けます。 代入演算子の短い形式は、より良いビジュアライゼーションのためにコードで使用されています。 プログラマは、自分のオプションで、代入演算子の1つまたは別の形式を使用することができます。 短い形式の代入演算子は、通常のフルフォーマットの代入演算子として簡単に書き直すことができ、その実行結果はまったく変わりません。
1 2 3 4 5 |
<span class="notranslate"> <span class="hl-identifier">In</span> <span class="hl-code">=</span> <span class="hl-number">33</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//代入演算子の短縮形</span></span> <span class="notranslate"> <span class="hl-identifier">In</span> <span class="hl-code">=</span> <span class="hl-identifier">In</span> <span class="hl-code">/</span> <span class="hl-number">33</span> <span class="hl-code">;</span></span> <span class="notranslate"> <span class="hl-comment">//</span> <span class="hl-comment">代入演算子の</span> <span class="hl-comment">完全</span> <span class="hl-comment">形式</span></span> <span class="notranslate"> <span class="hl-identifier">St</span> <span class="hl-code">+ = "</span> <span class="hl-identifier">_exp7</span> <span class="hl-code">";</span></span> <span class="notranslate"> <span class="hl-comment">//</span> <span class="hl-comment">代入演算子の短縮形</span></span> <span class="notranslate"> <span class="hl-identifier">St</span> <span class="hl-code">=</span> <span class="hl-identifier">St</span> <span class="hl-code">+ "</span> <span class="hl-identifier">_exp7</span> <span class="hl-code">";</span></span> <span class="notranslate"> <span class="hl-comment">//</span> <span class="hl-comment">代入演算子の</span> <span class="hl-comment">完全</span> <span class="hl-comment">形式</span></span> |