switch()文はEAやインジケーターを作成するときによく使うプログラムの概念です。
この記事でswitch()文を勉強して使いこなせるようになっていただければと思います!
1.switch()文とは
switch()文とは、()内に記述された条件を満たした場合に、一定の処理を実行させるために使用されるものです。
if()文と同様に、条件分岐を行うプログラムを作成する際に使用されます。
switch()文の書式は、以下のとおりです。
サンプルコード
switch(条件式)
{
case 数値:
実行させる処理;
break;
case 数値:
実行させる処理;
break;
……
default:
実行させる処理;
break;
}
switch()文は、以下のような動作を行います。
- 条件式を判定する。
なお、条件式は整数値で表されるものでなければなりません。 - 条件式の整数値と同じ「数値」があれば、当該数値の「case」にジャンプする。
条件式の整数値と同じ「数値」がない場合は、「default」にジャンプする。 - 「case」以下に記述した「実行させる処理」を実行する。
- 「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」が実行されて、「ターミナルウィンドウ」の「エキスパート」タブに、「デフォルト」が表示される。