switch 语句

 使用 switch 语句可以更简洁地实现 if ~ else if 的结构。格式如下。

switch(base_expression)
{
case condition_expression1 :

case condition_expression2 :

:
:

default:

:
:
}


 写在 base_expression 位置的表达式会在刚开始时被求值。switch 后面的语句块中的 case 的后面的 condition_expression? 也可以写成表达式。
 condition_expression? 会在语句块中被依次求值。求得的结果和 base_expression 相同时,就会从对应的位置开始执行。与 condition_expression? 的值不一致的话,对应部分的语句会被忽略。一致的话,在那之后的 case 和 default 的部分的语句会被忽略。
 default: 可以省略,处理到 default 这个标识时, default 以后的语句会被强制执行。
 从语句块中跳出可以使用 break; 。请注意,忘了写 break 的话,可能会一直执行到下一个 case 的内容。


例:
    switch(a)
    {
    case 0:
        inform("a 的值为 0 ");
        break;
    case 1:
        inform("a 的值为 1 ");
        break;
    case 2:
        inform("a 的值为 2 ");
        break;
    default:
        inform("a 的值为除了 0 1 2 以外的其他值");
    }


    switch(a)
    {
    case 0:
    case 1: // 因为没有 break ,case 0 的情况下也会经过这里
        inform("a 的值为 0 或 1 ");
        break;
    case 2:
        inform("a 的值为 2 ");
    } // 因为没有 default , 0 1 2 以外的情况下会什么也不执行


    switch(a)
    {
    case b+1: // 也可以在 case 后面指定表达式
        inform("a==b+1");
        break;
    case c+b:
        inform("a==c+b");
    }

    switch(str)
    {
    case "abcde": // 也可以指定字符串
        type=1;
        break;
    case "字符串":
        type=2;
        break;
    }