こんにちは!キリンです。
昨日は土曜出勤でした。サラリーマン生活も残すところあと2週間弱。
今日は、引越し会社に引越しの見積を作ってもらいましたが、
引越し費用は・・・
「12万!」
うーん。やっぱりこのぐらいするよなぁ。
神奈川から大阪だとやっぱり結構しちゃいますね。
では、本日の講座です。
■前回の問題の回答
■条件分岐とは?
■条件分岐を使う例
■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…”);
が動作するのですね。
何となくお分かりいただけたでしょうか?
一度このままプログラムを実行してみてください。
すると、
この様に動作します。ShojiKinが100以上なので、
ifの{}だけ動作したんですね。
次は、
int ShojiKin = 80;
としてみます。
すると、
と表示されます。
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!”);
ですね。
皆さんのご回答楽しみにしています^^
最後までお読みくださりまして、ありがとうございます!
コメント
SECRET: 0
PASS:
BASIC、C言語は少しわかります。
わかりやすいですね。
Time is money なので、自分でシステム
組んでみます。では。
SECRET: 0
PASS:
こんばんは、新居です。
私も最近MQLの勉強をしていますが、
Kirin@FTLさんの解説は分かりやすいですね。
とても参考になりました。
SECRET: 0
PASS:
初歩的な質問かわかりませんが教えて下さいキリンさん
通常のパソコンの画面での4XPのMT4は立ち上げる度にライブアップデード画面が出てきてアップデードできるのですがVPS上のMT4にはそういえばライブアップデート画面が起動させる毎に出てこないのでアップデートさせていませんでした。
今朝自分のパソコン上のMT4は回線不能でライブアップデートしたら普通に動き始めましたがVPS上のMT4をライブアップデートするにはどうしたらいいのでしょうか?
あらたにMT4のダウンロードからしないといけないのでしょうか?
こちら回線不能のままなのです…。
本を読んだけどわかりません。
手動アップデートの仕方を教えて下さい。
SECRET: 0
PASS:
>まこさん
おそらく今回の問題はヴァージョンアップのせいではなさそうですね。
VPSサーバー上での動作は、通常お使いのパソコン上での動作と違いありません。
ですので、FX業者の何かだと思われます。
私の方でも調べてみますね。
コメントありがとうございます!
今回も、とてもわかりやすいです。読破にむけてがんばります。
ちなみに、ときどき出てくる作業画面は、以前のバージョンでの作業方法ですよね?
似ているんですが、今のMT4の画面とはちがう気がして、調べつつやっています。