Switch
Switch-cmd
switchコマンドは、式がいくつかの値のいずれかに一致するかどうかをテストし、それに応じて分岐する特別な多方向意思決定者です。
構文
switch (expression) {case 1: . . . case 2: . . . case n: . .. [default: . . .]}
値は定数、識別子、文字列変数のいずれかです。 expressionが文字列変数の場合、大文字と小文字は区別されます(下記例を参照)。
いずれのcaseもbreakコマンドを必要とするため、以下のコマンドは実行されません。
デフォルトのcaseも使用でき、最後に指定する必要があります(switchコマンドを入れ子にするときは、デフォルトのcaseが最後に指定される必要があります)。
デフォルトのcaseは、他のcaseがマッチしない場合にのみ実行されます。
Note: case, default および to キーワードは大文字小文字を区別しません。
例:
サンプル1:
次のスクリプトはswitchコマンドを使用します。 switchコマンドの後の括弧内の式は変数 iiで評価値は2であるため、case
2が実行されます。 このスクリプトの結果はbです。
|
式が文字列に評価される場合、文字列の置換が必要ととなります。例)switch(%(COL(A[II]$))
|
ii=2;
switch (ii)
{
case 1:
type "a";
break;
case 2:
type "b";
break;
case 3:
type "c";
break;
default:
type "none";
break;
}
サンプル2:
次の例では、switchコマンドの後の括弧内の式は文字列変数であるため、評価では大文字と小文字が区別されます。 ただし、キーワードcase、default、toは大文字と小文字を区別しません。
GetString "Enter a string"; // 入力は%Bに入力される
switch (%B)
{
CASE "a":
type -a "You entered an 'a'.";
break;
case "b": CASE "c":
type -a "You entered a 'b' or 'c'.";
break;
case "A":
type -a "You entered an 'A'.";
break;
case "A" "B" "F" to "Z":
type -a "You entered 'A' or 'B' or between 'F' and 'Z'.";
break;
case 1 2 5 to 7:
type -a "You entered 1 or 2 or between 5 and 7.";
break;
default:
type -a "No match, this is the default case.";
break;
}
語彙順序はAaBbCc ...なので、'b'と'B'はどちらも次のように見つけることができます。:
case "A" to "C":
関連情報:
Break
(command), If (command)
Continue
(command), Document (command),
Exit
(command), For
(command), Loop
(command), Repeat
(command),
|