4.8 switch语句
C的switch语句颇不寻常。它类似于其他语言的case语句,但在一个方面存在重要的区别。首先让我们来看看它的语法,其中expression的结果必须是整型值。
switch( expression )
statement
尽管在switch语句体内只使用一条单一的语句也是合法的,但这样做毫无意义。实际使用中的switch语句一般如下所示:
switch( expression ){
statement-list
}
贯穿于语句列表之间的是一个或多个case标签,形式如下:
case constant-expression:
每个case标签必须具有一个唯一的值。常量表达式(constant-expression)是指编译期间进行求值的表达式,它不能是任何变量。这里的不同寻常之处是case标签并不把语句列表划分为几个部分,它们只是确定语句列表的进入点。
switch语句的执行过程。首先是计算expression的值;然后,执行流转到语句列表中其case标签值与expression值相匹配的语句。从这条语句起,直到语句列表的结束(也就是switch语句的底部),它们之间所有的语句均被执行。
警告:
switch语句的执行过程的不同之处。执行流将贯穿各个case标签,而不是停留在单个case标签,这也是为什么case标签只是确定语句列表的进入点而不是划分它们的原因。如果你觉得这个行为不是那么正确,有一种方法可以纠正---就是break语句。
4.8.1 switch中的break语句
如果在switch语句的执行中遇到了brea
C和指针 第4章 语句 4.8 switch语句
于 2022-06-11 10:39:09 首次发布