【MQL4の勉強】switch()文とは何?プログラム書き方やサンプルコードあり!

switch()文はEAやインジケーターを作成するときによく使うプログラムの概念です。

この記事でswitch()文を勉強して使いこなせるようになっていただければと思います!

1.switch()文とは

switch()文とは、()内に記述された条件を満たした場合に、一定の処理を実行させるために使用されるものです。

if()文と同様に、条件分岐を行うプログラムを作成する際に使用されます。

switch()文の書式は、以下のとおりです。

サンプルコード

switch(条件式)
          {
            case 数値:
                    実行させる処理;
                    break;
            case 数値:
                    実行させる処理;
                    break;
            ……
            default:
                    実行させる処理;
                    break;
          }

switch()文は、以下のような動作を行います。

  1. 条件式を判定する。
    なお、条件式は整数値で表されるものでなければなりません。
  2. 条件式の整数値と同じ「数値」があれば、当該数値の「case」にジャンプする。
    条件式の整数値と同じ「数値」がない場合は、「default」にジャンプする。
  3. 「case」以下に記述した「実行させる処理」を実行する。
  4. 「break;」によって、switch()文を抜ける。

なお、条件式によって得られる数値が、必ず所定の「case」に該当する場合は、「default」以下は記述しなくても構いません。

2.サンプルコード

サンプルコード


#property show_inputs

#property strict

input int No = 0;

void OnStart()
{
  switch(No)
        {
          case 0:
                 Print("ケース 0");
                 break;
          case 1:
                 Print("ケース 1");
                 break;
          default:
                 Print("デフォルト");
                 break;
        }
}

上記具体例は、以下のように動作します。

  • 変数「No」に「0」を代入した場合
    「case 0」が実行されて、「ターミナルウィンドウ」の「エキスパート」タブに、「ケース 0」が表示される。
  • 変数「No」に「1」を代入した場合
    「case 1」が実行されて、「ターミナルウィンドウ」の「エキスパート」タブに、「ケース 1」が表示される。
  • 変数「No」に「0」と「1」以外の数値を代入した場合
    「default」が実行されて、「ターミナルウィンドウ」の「エキスパート」タブに、「デフォルト」が表示される。

なお、Print()関数の詳細については「こちら」を参照してください。