【超入門】MQL5 EA講座 第33回「AND条件、OR条件の記述(論理積・論理和)」

MQL5でEA作ろう講座

前回は 主に関係演算について解説しました。↓

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

  • 関係演算子とは、2つの値を比較してその関係性を明示する記述である

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

今回はAND条件OR条件の記述方法 についてお話ししたいと思います。

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

AND条件とは?

AND条件とは

A と B という2つの要素があったとして

「A と B の要素両方を満たしている」条件

を指します。

AND条件のことを論理積とも言います。

AND条件を表すには &(アンパサンド)を2つ続けて書きます。

//「a==b」かつ「a+b==c」を満たしている。
 a==b && a+b==c;

AND条件の記述内容を満たしていれば、戻り値としてtrue、満たしていなければfalseを返します。

戻り値って何だっけ?」という方は ↓

第25回の「関数について」戻り値の項目をご覧ください。

あるいはこの先の講座記事にはなりますが、第42回「return演算子について」をご覧ください。

先に見ても特に差し支えありません。

「true?,false?って何だっけ?」という方は↓

第14回「データ型その4 Bool(ブール)型」をご覧ください。

void OnStart()
  {

   int a=5;
   int b=5;
   int c=10;
   
   //a==b」かつ「a+b==c」を満たしているかの結果を変数に代入
   bool TorF= a==b && a+b==c;
   
   //ログ出力→trueが出力される
    Print(TorF);

  }

上のサンプルコードにおける変数「TorF」の右辺は

a==b && a+b==cですが、

変数「a」と変数「b」は両方とも「5」につき条件は満たしていますね。

&&を挟んだもう一つの条件も

a+bは「10」で変数「c」の値「10」と同じにつき条件は満たしていますね。

2つの条件を両方とも満たしているので、変数「TorF」にはtrueが格納されます。

OR条件とは?

OR条件とは

A と B という2つの要素があったとして

「A と B の要素どちらかを満たしている」条件

を指します。

OR条件のことを論理和とも言います。

OR条件を表すには |(パイプ)を2つ続けて書きます。

//「a==b」または「a+b==c」を満たしている。
 a==b || a+b==c;

OR条件AND条件と同様に、記述内容を満たしていれば、戻り値としてtrue、満たしていなければfalseを返します。

void OnStart()
  {



   int a=3;
   int b=8;
   int c=10;
   
   //「a<=b」または「a+b==c」を満たしているかの結果を変数に代入
   bool TorF = a<=b || a+b==c;
   
   //ログ出力→trueが出力される
    Print(TorF);

  }

さあ、いかかでしょうか?

上のサンプルコードにおける変数「TorF」の右辺は

a<=b && a+b==cですが、

変数「a」は3、変数「b」は8につき、変数「a」より変数「b」が大きいので条件は満たしていますね。

その一方で、|| を挟んだもう一つの条件式は

a+bは「3+8=11」で変数「c」の値「10」と同じではないので、条件は満たしていないですね。

2つの条件のうち、1つを満たしているので、変数「TorF」にはtrueが格納されます。

まとめ

今回はAND条件OR条件の記述方法 について解説しました。

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

  • 「指定したの条件の、全てを満たしている」条件をAND条件(論理積)という。

  • AND条件を表すには &(アンパサンド)を2つ続けて書く。

  • 「指定したの条件の、最低1つを満たしている」条件をOR条件(論理和)という。

  • OR条件を表すには |(パイプ)を2つ続けて書く。

  • AND条件OR条件の記述内容を満たしていれば、戻り値としてtrue、満たしていなければfalseを返す。

今回は以上になります。

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

【超入門】MQL5 EA講座 第32回「関係演算子(Relation Operations)」

          →【超入門】MQL5 EA講座 第34回「if文について」【EAの作り方】

コメント

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