IF関数の書き方について(MQL4学習 )

MQL4学習

どうも潤奈です( ・Д・)

今回はIF関数の書き方についてまとめて行きたいと思います。

以下からはif文と呼んで説明させて頂きます。

だれか知っている方がいらっしゃったらIF関数とif文の言葉の違いを教えて下さい( ・Д・)w

では行ってみましょう!

スポンサーリンク

if文とは

if文とは、記述した条件に対して真(true)か偽(false)かの2択によって次の処理を変える事が出来ます。

コードは以下のように記述します。

条件式が真(true)であれば、{}内の処理を行い、偽(false)であれば{}内の処理を飛ばします。

ちなみに条件式の結果は真の時は1で、偽の時は0になります。

よって以下のような記述パターンが考えられます。

例1の条件式のように比較演算子(==)をよく使用しますので他にも紹介します。

演算子説明
>A>BAがBより大きい場合
<A<BAがBより小さい場合
>=A>=BAがB以上の場合
<=A<=BAがB以下の場合
==A==BAがBと等しい場合
!=A!=BAがBと等しくない場合

他にも論理演算子を組み合わせる事で条件式の幅が広がりますので紹介します。

演算子説明
!!AAではない
&&A&&BAかつB
||A||BAまたはB

使用例は以下のような記述方法になります。

このように2つの条件を満たした場合に{}内の処理に進めるようにしたり、条件を組み合わせる事が出来ます。

if else文とは

if else文は、if文の条件で偽(false)の場合に行う処理を記述します。

コードは以下のように記述します。

条件式が真(true)であれば、ifの後の{}内の処理を行い、偽(false)であればelseの後の{}内の処理を行います。

else if文とは

if文からのelse if文で複数の条件を設置する事が出来ます。

コードは以下のように記述します。

このように条件式を複数設置する事が出来ます。

{}を省略パターン

{}は省略する事も可能です。

例1を省略してみると以下のようになります。

このように{}を省略してもif文の次までは対象の範囲内になりますので、以下のように改行しても有効です。

しかし、2つめの処理は範囲外です。

1つ目のPrint関数はif文がtrueの場合は表示されますが、2つ目のPrint関数はif文の結果に影響されないので表示されます。

else if文も同様に{}を以下のように省略できます。

ただ個人的には読みづらくて好きではないのでこのようには書きません( ・Д・)

処理的に非効率な記述パターン

処理動作に問題はありませんが、効率的ではない記述パターンがあります。

これは私も実際に書いていた書き方ですw

いかがでしょうか。何が非効率か分かりますか?

実はこの場合だと1度で済む確認作業を2回行っている事になっています。

どういう事かと言うと、まずif文の()内で比較演算子を使ってAがtrueであるかを確認しています。

そしてその結果をtrueかfalseかを判断して、trueの場合は{}内の処理に進みます。

気付きましたか?

そうです。trueであるかを2回確認しています。

よって以下の記述の方がシンプルなのではないかと思います。

まとめ

最後の非効率な書き方については、それを直したからといってどれぐらい処理速度が速くなるのかは分かりませんが、出来るだけシンプルにスムーズなプログラムを書いて行きたいですよね。

コメント

タイトルとURLをコピーしました