关于 Switch 语句
如果您有大量依赖于单个变量值的条件语句,使用 switch 语句通常比使用一长串 if/else 语句更方便。
switch 语句具有以下格式:
switch( expression ) {
case value1:
statement1
break;
case value2:
statement2
break;
. . .
default:
statement3
}
通过示例最能说明这一点。以下 switch 语句将整数值 n 转换为该整数的文本表示:
switch(n) {
case 0:
name="zero";
break;
case 1:
name="one";
break;
case 2:
name="two";
break;
case 3:
name="three";
break;
case 4:
name="four";
break;
case 5:
name="five";
break;
case 6:
name="six";
break;
case 7:
name="seven";
break;
case 8:
name="eight";
break;
case 9:
name="nine";
break;
default:
name="ERROR: n is not between 0 and 9";
}
此语句首先计算表达式 n,然后扫描所有 case 语句以找到与 n 的值匹配的语句。例如,如果 n 等于 3,条件语句的执行从 case 3: 开始。在示例中,对于每个 case,设置名为 name 的变量的值,然后跳出 case 语句。使用 break 命令跳出语句。如果没有任何 case 语句包含与 n 的值匹配的项,执行将跳转到 default:。
请注意,条件语句的执行从匹配的 case 语句开始,但不会在下一个 case 语句开始时结束。例如,如果您删除第三个和第四个 case 之间的 break 命令,如下所示:
当 n 等于 3 时,变量 name 被设置为 three,然后执行串联进入下一个 case 语句。也就是说,name 被更改为等于 four。
您可以使用此功能来合并 case,如下例所示:
switch(n) {
case 0:
case 2:
case 4:
case 6:
case 8:
name="even number";
break;
case 1:
case 3:
case 5:
case 7:
case 9:
name="odd number";
break;
default:
name="ERROR: n is not between 0 and 9";
}
各个 case 值可以是任何数据类型,而不仅仅是数字。以下所有都是合法的 case 表达式: