3.6.9 switch-endswitch

switchステートメントを使用すると,式の値に応じてコードにある複数の選択肢の中から処理を選択できます。式は括弧で囲んで指定してください。

switchステートメントには,caseラベルまたはdefaultラベルが付いているものがあり,それらが選択肢となります。各caseラベルは,定数値を持てます。switchステートメントはcaseラベルがなければ意味を持たないため,switchステートメント中には,一つ以上のcaseラベルを付けるようにしてください。

defaultラベルは,一つしか指定できません。defaultラベルはオプションであり,これに値を指定しないようにしてください。

<この項の構成>
(1) 形式
(2) 説明
(3) 記述例

(1) 形式

switch (式)

 [case 定数値:]+
      [式;]*
 ...
 ...
[default:]
      [式;]*

endswitch;

(2) 説明

  1. 式が評価されます。
  2. 式の値と等しいcaseラベル値を持つブロックに制御が移ります。breakに達するまでは,(caseラベル値とは関係なく)引き続きすべてのステートメントが実行されます。
  3. breakステートメントに達すると,switchステートメントの外側に制御が移ります。
  4. 式の値がcaseラベル値と等しくないときは,defaultラベルが指定されていると,その位置に制御が移ります。

switch-endswitchステートメントを指定するには,次の規則に従います。

(3) 記述例

s1="abcdefghijk";
switch (!AIT_IsEmpty(s1 ))
case true:            // s1が空の場合実行されます
   s2 = AIT_StrUpper(s1);
   AIT_MessageBox("s2",s2);
      if ( ( length = AIT_StrLength(s2)) > 10)
          break;
   endif;
   break;
default:              //状態がfalseを返してきた場合
   break;            //実行されます
endswitch;