MT4(MQL4)/MT5(MQL5)のSwitch 演算子
式の値と一致する case の処理を実行する演算子。
switch(式)
{
case constant: operators
case constant: operators
...
default: operators
}
一致する条件がない場合は、空振りします。
char,uchar,short,ushort,int,uint,long,ulong型、もしくは数値等を直接記載するリテラル定数が使えます。(公式ページによると定数式も使えるらしいのですが、使い方は分かりませんでした…)
MT4→MT5になっても変わらず使えます。
サンプルコード
void OnInit()
{
int x;
x = 1;
switch(x)
{
case 1:
Print("x=1");
break;
case 2:
Print("x=2");
break;
default:
Print("xは1でも2でもありません");
break;
}
Print("-----------------------------------");
x = 2;
switch(x)
{
case 1:
Print("x=1");
break;
case 2:
Print("x=2");
break;
default:
Print("xは1でも2でもありません");
break;
}
Print("-----------------------------------");
x = 3;
switch(x)
{
case 1:
Print("x=1");
break;
case 2:
Print("x=2");
break;
default:
Print("xは1でも2でもありません");
break;
}
Print("-----------------------------------");
ushort y;
y = 'a';
switch(y)
{
case 'a':
Print("y=a");
break;
case 'b':
Print("y=b");
break;
default:
Print("yはaでもbでもありません");
break;
}
Print("-----------------------------------");
y = 'b';
switch(y)
{
case 'a':
Print("y=a");
break;
case 'b':
Print("y=b");
break;
default:
Print("yはaでもbでもありません");
break;
}
Print("-----------------------------------");
y = 'c';
switch(y)
{
case 'a':
Print("y=a");
break;
case 'b':
Print("y=b");
break;
default:
Print("yはaでもbでもありません");
break;
}
}
結果
x=1
-----------------------------------
x=2
-----------------------------------
xは1でも2でもありません
-----------------------------------
y=a
-----------------------------------
y=b
-----------------------------------
yはaでもbでもありません
【参考】MQL5公式ページ
コメント / Comments