為替ロボット 研究所

« プログラムの作成 練習2-2 演算 | メイン | プログラムの作成 練習2-4 繰り返しフォー »

プログラムの作成 練習2-3 条件分岐

プログラミングに欠かせない処理、条件分岐を練習してみましょう。

条件分岐は、
「こういう状態なら○○の処理を、そうでないならxxの処理を実行せよ」
というふうに、条件に応じて処理内容を変えるものです。

mq4ではif()を使います。

int start(){
 int i;
 i=1;
 if(i==1){
  Print("OK");①
 } else{
  Print("NG");②
 }
}

if()は「もし()内の条件が真ならば、そのあとの{}内の処理を行い、偽ならば、else以下の処理を行え」というものです。
つまりこの例では, i が1なら①の処理を行い、iが1以外なら②の処理を行ないます。iには1を代入していますので、①が実行されて「OK」が出力されます。

i==1と「=」が二つ並んでいることに注意してください。=を一個だけにしているとエラーが出ます。

==は比較演算子と呼ばれるもので、両辺の値を比較するための記号です。

・A == B AとBが等しければtrue(真)
・A != B AとBが等しくないならtrue
・A > B Aのほうが大きいならtrue
・A >= B AがB以上ならtrue(A=Bの場合を含む)
・A < B
・A <= B

A==B かつ A > C というような条件を調べるには、
&&をつかって、 
A==B && A > C
というふうに書きます。
この場合、A=2、B=2、C=1ならば真、A=2、B=2、C=3ならば偽になります。

「または」は|| (Shift+¥キーで出る「|」を2つ)です。
A==B || A < C
AとBが等しい、または、AよりCが大 なら真
 A=2,B=2,C=3は真、A=2,B=3,C=1も真、A=2,B=2,C=1も真です。
 A=2,B=1,C=3は偽になります。

()でくくればさらに複雑な条件を調べることが出来ます。
(A==B && A > C) || A < D
AがBと等しくてCより大きい、または、AがDより小さいなら真
A=2、B=2、C=1、D=3ならば真、A=2、B=2、C=3、D=1の場合も真、A=2、B=2、C=3、D=3は偽になります。


真や偽のときの処理が一行で終わる場合には{}を省略することが出来ます。
if( i==1) Print("OK");
else Print("NG");

入れ子式に使うこともできます。
if( i==1 ){
 if( j==2 ){
  Print("OK");
 } else {
  Print("NG j");
 }
} else Print("NG i");

偽の場合に何もしないのなら、elseは省略できます。

int start(){
int i,j;
i=1;
j=2;
if( i==1) {
 Print("i ==1");
}

if( j==1) Print("j=1");
else Print("j !=1");

return(0);
}
//結果、「i==1」と 「j !=1」が表示される



« プログラムの作成 練習2-2 演算 | メイン | プログラムの作成 練習2-4 繰り返しフォー »

トラックバック

このエントリーのトラックバックURL:
http://kawarobo.com/motp/mt-tb.cgi/338

コメント

こんにちは。

最近FXを始めたリーマンプログラマーです。

経済の知識がほとんど無く、テクニカルの検証ツールを
探しておりました。
※「せっかくだからプログラマーらしくシステムトレードするぜ!」
さんのところからこちらへ飛んできました。

カワロボのインストール~設定を一通り読みましたが
かなり本格的で驚きました。

これから参考にさせていただきますので、どうかよろしく
お願いします^^

投稿者 しのぽん : 2005年11月25日 16:06

しのぽんさん、コメントありがとうございます!
プログラマーのかたにも読んでもらえるのは何だか心強いです。
MetaTraderは、自分で一からソフトを作るより、かなり楽が出来るのでいいですよね。検証ツールとしても結構使えると思います。

これからも是非よろしくお願いします!

投稿者 kawarobo : 2005年11月26日 14:58

コメントしてください




保存しますか?


おすすめFX