Switch
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":
関連情報:
Continue
(command), Document (command),
Exit
(command), For
(command), Loop
(command), Repeat
(command),