<< If文 | TOP | for文 >>
MetaTrader4 プログラム入門 part4 If文 複数の条件分岐



 今回は前回に引き続きIf文の複数の条件分岐について説明します。


 前回よりも難しいと思いますが、少しずつ理解して行けばそこまで難しくはないので、頑張って下さい。


 では、前回と同じようにMetaEditorを起動して下さい。


 Nameはifbunn2にして置いて下さい。


 まず前回と同じように、int start()の真上に、下のコードを書いてください。 


 int a = 0;


 前回と同じく、真上ですので間違えないで下さい。


 次に、int start()の中のreturn(0);の上辺りに次のコードを書いてください。


 今回は、分けると逆にややこしくなるので、一度に全部書きます。



 if(a < 10 || a >20 && a <30)
 {
   Print("a=0~9 or a=21~29 a=",a);
 }
 else if(a >= 10 && a <= 20)
 {
   Print("a=10~20 a=",a);
 }
 else
 {
   Print("a=30 a=",a);
   a=0;
 }


 a++;



 意味が分からないと思いますが、とりあえずこの通りに書いてください。


 書けましたか?


 では、少しずつ説明して行きます。


 まず、if(a < 10 || a >20 && a <30)ですが、基本的には前回やったIf文と同じです。


 ただ、条件分岐が複数になっただけです。


 ||がorで、&&がandです。


 日本語で訳すと次のようになります。


 もし、aが10未満、もしくはaが21以上(20は含まないので)で30未満の場合。


 こういう意味になります。


 この複数の条件分岐を使うことによって、より細かく条件を指定出来るようになります。


 また、もっと細かく条件分岐をする場合は、||と&&がどれとどれを示しているのかややこしくなりますので、()で纏めると良いです。


 先程のやつを纏めると次のようになります。


 if(( a < 10 || a >20 ) && a <30 )


 こうすると余計なミスがかなり減ります。


 Print()は、分かり易いように内容を書いてます。


 次に、else if(a >= 10 && a <= 20)です。


 一度、Ifを使った後にelseを使うと、前に使ったIf以外という意味を付ける事が出来ます。


 日本語にすると次のような意味になります。


 前のIf以外で、もしaが10以上で、20以下だった場合。


 このような意味になります。
 

 最後のelseですが、単体で書くと今までのIf以外の条件という意味になります。


 今回は、aが30以上の場合という意味です。


 aが30以上だった場合、Print()をした後、aを0にしています。


 
 その後、If文の後で、時間足が変わるたびにaに+1しています。


 今回のプログラミングはこれで終了です。


 今回は使いませんでしたが、If文は他に入り子式に使うことも出来ます。


if(a >= 10)
{
  if(a <= 20)
  {

  }
}


 これで、aが10以上で20以下の場合という条件が出来ます。


 if(a >= 10 && a <= 20)でも意味は同じですが、入り子式にすると10以上の場合に何か処理をしてから、10以上で20以下の場合の処理もすることが出来ます。


 よく分からない人は、使って行く内になんとなく使い方が分かってきますので、こういうやり方もあると覚えて置いてください。



 では、最後にまとめて書きます。




if文 複数の条件分岐




int a=0;
int start()
{

 if(a < 10 || a >20 && a <30)
 {
   Print("a=0~9 or a=21~29 a=",a);
 }
 else if(a >= 10 && a <= 20)
 {
   Print("a=10~20 a=",a);
 }
 else
 {
   Print("a=30 a=",a);
   a=0;
 }


 a++;

 return(0);

}

 

 今回のプログラムは、aの値によってコメントを変えて行き、時間足が更新する度にaに+1をして、aが30以上になったら0に戻すというものです。


 では、いつもと同じようにコンパイルをするためにcompileのボタンを押してください。


 エラーが出てきた場合は、半角になっているか、;を付け忘れていないか、{}を付け忘れていないか、{}の数は合っているかを確認して下さい。


 特に、今回はIf文を多く使ったので、{}をよくチェックして下さい。


 一応エラーが出た場合は、下のほうのDescriptionの所にエラー内容が書いてます。


 かなり分かり辛いので、あまり使いやすくはないですが……。


 エラーが出なかったら、MetaTrader4のバックテストでifbunn2を選んで、スタートして下さい。


 終わったら、操作履歴をみて下さい。
 



操作履歴




 メッセージの一番右端に、条件分岐によってaのコメントが書かれていて、その後にaの値が書いてますね。


 今回はこれで終了です。


 多分、プログラム初心者の方には分かり辛かったと思います。


 If文が難しいと思った方は、紙にフローチャートを作ると良いと思います。



 条件1 Yes→
      No→

 
 こんな感じのものです。


 作業量は増えますが、途中で分からなくなることは少なくなります。


 
 次回は、for文というものを説明して行きます。





----------------------注意----------------------
 このサイトは半角のスペースが認識されない為、コードを見易くするために全角で書いている場合があります。
 実際にプログラムにコードを書くときは、コピー&ペーストせずに半角で書いて行って下さい。
システムトレード準備編

トップページ プロフィール ブログ リンク オーダーシステム 利用規約 問い合わせ