■超直感!MT4プログラミング講座■ 第10回 if関数を使ってみよう

スポンサーリンク

こんにちは!キリンです。
昨日は土曜出勤でした。サラリーマン生活も残すところあと2週間弱。
今日は、引越し会社に引越しの見積を作ってもらいましたが、
引越し費用は・・・
「12万!」
うーん。やっぱりこのぐらいするよなぁ。
神奈川から大阪だとやっぱり結構しちゃいますね。
では、本日の講座です。


第10回 if関数を使ってみよう

■前回の問題の回答
■条件分岐とは?
■条件分岐を使う例
■if関数を使ってみよう
■if関数を使った問題
■前回からの問題の回答

mt4のexpert上に
i = 5
i = 4
i = 3
と表示させるプログラムを作ってみてください!

for(int i = 3; i < 6 ; i++){ Print("i = ",i); } が正解です。 初期値が3。6未満まで繰り返す。iに1を足し続ける。 というのが中身ですねー。 ちなみに補足の説明ですが、私が昔勘違いしていたことがありますので せっかくなのでご紹介。 int i; for(i = 3; i < 6 ; i++){ Print("i = ",i); } とすることもできます。 関数の定義[ int ]をforの引数部分におく必要はないんですね。 簡単・・・ですよね? 分からない点がありましたら質問くださいね! ■条件分岐とは?
条件分岐とは。ある条件を満たすか満たさないかで場合分けすることを言います。
それを、プログラム上では
条件を満たす場合 ⇒ true[真]
満たさない場合  ⇒ false[偽]
と表現します。
例を挙げて説明しますね。
■条件分岐を使う例
・100円の商品を購入することができますか?
100円以上のお金を持っていれば ⇒ true[真]
100円未満のお金しか持っていなければ ⇒ false[偽]
・お金持ってますか?(w
お金持っていれば ⇒ true[真]
お金持っていなければ ⇒ false[偽]
みたいな形ですね。
そして、お金を100円以上持っていたら、レジに行って商品を買うという
動作をすればいいわけです。
では、実際にプログラムで条件分岐してみます。
■if関数を使ってみよう
では、testのスプリクトを下記のように変更してみてください。

//+------------------------------------------------------------------+
//| test.mq4 |
//| Copyright Kirin 2010, MetaQuotes Software Corp. |
//| http://ameblo.jp/ftlabo-kirin/ |
//+------------------------------------------------------------------+
#property copyright “Copyright Kirin 2010, MetaQuotes Software Corp.”
#property link “http://ameblo.jp/ftlabo-kirin/”
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//—-
int ShojiKin = 120;
if(ShojiKin >= 100){
Print(“You can buy an apple!”);
}else{
Print(“You cannot buy an apple…plz earn your money…”);
}
//—-
return(0);
}
//+------------------------------------------------------------------+

新しく出てきた関数が if 文と else 文です。
ifというのは、「~~だったならば」という意味の英語で、
elseは「その他の場合~~」という意味ですよね。
ここでは、ifの()の中身がtrue[真]かfalse[偽]かを見ています。
ちなみに、>= というのは、≧という意味で、
ShojiKin >= 100
は、「ShojiKinが100以上ですか?」ということを確認しているんですね。
そして、()の中身が真だったら{}の中身を動作させる。
今回のプログラムの場合は、
Print(“You can buy an apple!”);
が動作します。
そして、ifの()の中身が偽であった場合は、
プログラムの動作がelseのところに移ります。
そして、elseの{}の中身を動作させます。
この場合は、
Print(“You cannot buy an apple…plz earn your money…”);
が動作するのですね。
何となくお分かりいただけたでしょうか?
一度このままプログラムを実行してみてください。
すると、
$Trading Systems ~経済的自由を得るために~
この様に動作します。ShojiKinが100以上なので、
ifの{}だけ動作したんですね。
次は、
int ShojiKin = 80;
としてみます。
すると、
$Trading Systems ~経済的自由を得るために~
と表示されます。
elseの{}の中身が動作したんですね。
これが、条件分岐です。
※プログラムの中身を変更したら、メタエディター上でF5を押してプログラムを更新してくださいね!
ちなみに、if文の後に必ずelseをつけなければならないというわけではなく、
elseで何も動作させる予定がなければ、elseは省略することができます。
また、trueとfalseの使い方を理解していただきたいので、
ifの括弧の中を次のように変更します。
if(true){
Print(“You can buy an apple!”);
}else{
Print(“You cannot buy an apple…plz earn your money…”);
}
とすると、ifの{}の中が動作します。
if(false){
Print(“You can buy an apple!”);
}else{
Print(“You cannot buy an apple…plz earn your money…”);
}
とすると、elseの{}の中が動作します。
trueとfalse自体が元々定義されている変数なんですね。
中身は1, 0なんですけど。
このように、
ShojiKin >= 100
を満たせば true
満たさなければ false
という動作をしていたんですね。
これがif文の使い方です。
では、今回の問題です。
■if関数を使った問題
お金を持っているか持っていないかで
表示させる文字が異なるものを作ってみてください。
お金があるとき
Print(“You have Money!”);
お金がないとき
Print(“No Money!”);
ですね。
皆さんのご回答楽しみにしています^^
最後までお読みくださりまして、ありがとうございます!

コメント

  1. otwo2 より:

    SECRET: 0
    PASS:
    BASIC、C言語は少しわかります。
    わかりやすいですね。
    Time is money なので、自分でシステム
    組んでみます。では。

  2. SECRET: 0
    PASS:
    こんばんは、新居です。
    私も最近MQLの勉強をしていますが、
    Kirin@FTLさんの解説は分かりやすいですね。
    とても参考になりました。

  3. まこ より:

    SECRET: 0
    PASS:
    初歩的な質問かわかりませんが教えて下さいキリンさん
    通常のパソコンの画面での4XPのMT4は立ち上げる度にライブアップデード画面が出てきてアップデードできるのですがVPS上のMT4にはそういえばライブアップデート画面が起動させる毎に出てこないのでアップデートさせていませんでした。
    今朝自分のパソコン上のMT4は回線不能でライブアップデートしたら普通に動き始めましたがVPS上のMT4をライブアップデートするにはどうしたらいいのでしょうか?
    あらたにMT4のダウンロードからしないといけないのでしょうか?
    こちら回線不能のままなのです…。
    本を読んだけどわかりません。
    手動アップデートの仕方を教えて下さい。

  4. SECRET: 0
    PASS:
    >まこさん
    おそらく今回の問題はヴァージョンアップのせいではなさそうですね。
    VPSサーバー上での動作は、通常お使いのパソコン上での動作と違いありません。
    ですので、FX業者の何かだと思われます。
    私の方でも調べてみますね。
    コメントありがとうございます!

  5. むん より:

    今回も、とてもわかりやすいです。読破にむけてがんばります。
    ちなみに、ときどき出てくる作業画面は、以前のバージョンでの作業方法ですよね?

    似ているんですが、今のMT4の画面とはちがう気がして、調べつつやっています。

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