【超入門】MQL5 EA講座 第14.5回「Bool(ブール)型について補足」

MQL5でEA作ろう講座

-<PR>-

※【おススメのMT5MQL5対応のFX業者】

MQL5にて開発した、MT5EAを実運用するにあたり、

当サイトでは以下のFX業者をおススメいたします。

外為ファイネスト

EAの利用制限なし。スキャルピングもOK

外為ファイネストに関する記事はコチラ

アヴァトレードジャパン

自動売買界最狭スプレッド水準

アヴァトレードジャパンに関する記事はコチラ

—————————————————————


前回ブール型 というデータ型 について解説しました。

改めて前回の内容をおさらいをしておくと、

  • bool型は正しい(true) か 正しくない(false)か というデータを格納する変数を用意する時に用いるデータ型である

ということをお伝えしました。

今回は前回の記事で解説した、ブール型のちょっとした補足です。

整数型についてはコチラ

実数型についてはコチラ

文字列型についてはコチラ

カラー型についてはコチラ

スポンサーリンク
スポンサーリンク

ブール型についての補足

前回の記事の中で、使ったサンプルコードです。

//varBoolという名前のブール型変数を用意する
bool varBool;

//varBoolに「true(=正しい)」という結果を代入する
varBool=true;
//もしvarBoolにtrueが入っていたら、チャートにコメント表示する
if(varBool==true)Comment("varBoolにはtrueが格納されています");

この中の、

varBool=true;

という記述を見たとき、こう思った人はいたでしょうか?

「trueって、数字なの?文字なの?」

・・・確かに「true」ってアルファベットだし、でも文字だとしたらダブルクォーテーションで挟まなきゃいけないし、データ型だってstringのはずだし・・・。

と、モヤモヤしますよね。

実は、bool型というのはプログラム内部的には整数型の1種なんです。

どういうことか、ピンとこないと思います。

↓のコードを見てください。

最初に載せたサンプルコードから変更したのはif文を削除したのと、コメント関数の()の中身だけです。

void OnStart()
  {

//varBoolという名前のブール型変数を用意する
bool varBool;

//varBoolに「true(=正しい)」という結果を代入する
varBool=true;
//チャートにコメント表示する
Comment(varBool);


  }

(“varBoolにはtrueが格納されています”)

(varBool)

に変えた形ですね。シンプルに格納した変数をチャートに表示する、というだけの記述です

このプログラムを実行すると

trueとでました。

varBool=false;に変えると・・・

falseと表示されました。予想通りですね。

では、Comment関数の記述を以下のように変更するとどうでしょう?

Comment((int)varBool);

変数varBoolの前にある、(int)という記述は

型変換(=キャスト)

という処理になります。今後の講座記事で別途取り上げますが、

今はbool型変数の値がプログラム内部的にはどうなっているかを確認するための記述だと思ってください。

型変換(=キャスト)についてもし先に、「詳しく知りたい!」という方がいらっしゃいましたら↓の記事をご覧ください。

改めてMQL5 Program Fileをチャートに挿入してみましょう。

varBool=true;の場合↓

varBool=false;の場合↓

trueの時は、1

falseの時は、0

と表示されていますね!

冒頭に、

bool型というのはプログラム内部的には整数型の1種

といったことが少しはおわかりいただけたのではないでしょうか?

つまり我々人間には「正しい」、「正しくない」という情報を視覚的に伝わりやすくするために、Comment関数Print関数で出力する際は「true」「false」という文字情報になっていますが、実際は

true=1(厳密には0以外)

false=0

という切り分けを行っている、ということです。

※(厳密には0以外)→例えば

varBool=5;

という記述をしたとします。これをComment関数で表示すると

varBoolに格納されている「5」は「0以外の値」なので、trueになっていますね。

前回からの解説をまとめると、trueとは以下↓の状態を指す、という事が言えます

記述されている条件式が正しい時

予約語「true」が記述されている時

0以外の値が記述されている時

void OnStart()
  {//以下の記述はすべて「true」とログ出力される
         bool a= 1<5;
         bool b=true;
         bool c=10;
         
         Print(a);
         Print(b);
         Print(c);
  }

一方、

falseとは以下↓の状態を指す、という事が言えます

記述されている条件式が間違っている時

予約語「false」が記述されている時

値が0である時

void OnStart()
  {//以下の記述はすべて「false」とログ出力される
         bool a= 1>5;
         bool b=false;
         bool c=0;
         
         Print(a);
         Print(b);
         Print(c);
  }
//+------

まとめ

今回は、前回に引き続きブール型について解説しました。

今回の記事では以下のことを学びました↓

  • bool型は正しい(true) か 正しくない(false)か というデータを格納する変数を用意する時に用いるデータ型である

  • プログラム内部では、true=1(厳密には0以外)、false=0 というデータの切り分けを行っている

最後までお読みいただきありがとうございました。<m(__)m>

【超入門】MQL5 EA講座 第14回「データ型その4 Bool(ブール)型」←

      →【超入門】MQL5 EA講座 第15回「データ型その5 Color型」【EAの作り方】

—————————————————————

-<PR>-

※【おススメのMT5MQL5対応のFX業者】

MQL5を使って自作したEAシステムトレードに利用するには、取引プラットフォームとしてMT5を提供しているFX会社に口座を開設しなくてはいけません。

当サイトでは以下のFX会社での口座開設・EA運用をおススメしています。

おススメする理由の詳細につきましては、各FX会社について解説する記事を書いておりますので、下記のリンク記事を参考にしていただければと思います。


外為ファイネスト

EAの利用制限なし。スキャルピングもOK

外為ファイネストに関する記事は↓をご覧ください。

アヴァトレードジャパン

自動売買界最狭スプレッド水準

アヴァトレードジャパンに関する記事は↓をご覧ください。

コメント

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