[NAME]
ALL.dao.control.switch-case

[TITLE]
Switch-Case控制

[DESCRIPTION]

Switch-case控制可以根据一个表达式多个可能的值选择不同的代码块进行执行。 它提供了一种方便的
分支执行方式。

 0.1   Definition  
     
   1  SwitchCaseStmt ::= 'switch' '(' Expression ')' '{'
   2                     { 'case' Expression [ ( ',' | '...' ) Expression ] ':' ControlBlock }
   3                     [ 'default' ':' ControlBlock ]
   4                     '}'
     

Switch-case的基本用法如下: 
     
   1  switch( expresssion ){
   2  case C_1 : block_1
   3  case C_2 : block_2
   4  case C_3 : block_3
   5  ...
   6  default: block0
   7  }
     
这里如果expresssion的值等于C_i, 那么代码块block_i将被执行; 这里C_i必须是常量,但它们不需要
是同样的类型。 与C/C++不同,这里每个case的代码块被执行后都将自动跳出Switch-case结构, 不需要
用到break语句。

如果你需要针对不同的case值执行同样的代码块,你可以将这些值放在一个case里: 
     
   1  switch( expresssion ){
   2  case C1, C2, C3 :
   3      block3
   4  ...
   5  default: block0
   6  }
     
这里是个简单的例子: 
     
   1  a = "a";
   2  switch( a ){
   3  case 1, "a" : io.write("case 1 or a");
   4  default :  io.write("case default");
   5  }