C语言的switch语句中case后()
B:只能为常量或常量表达式
C:可为常量或表达式或有确定值的变量及表达式
D:可为任何量或表达式 展开
选B,case后面只能是整型或字符型的常量或常量表达式。
一、switch是另外一种选择结构的语句,用来代替简单的、拥有多个分支的if else 语句,基本格式如下:
switch(表达式){
case 整型数值1: 语句 1;
case 整型数值2: 语句 2;
......
case 整型数值n: 语句 n;
default: 语句 n+1;
}
二、它的执行过程是:
1、首先计算“表达式”的值,假设为 m。
2、 从第一个 case 开始,比较“整型数值1”和 m,如果它们相等,就执行冒号后面的所有语句,也就是从“语句1”一直执行到“语句n+1”,而不管后面的 case 是否匹配成功。
3、如果“整型数值1”和 m 不相等,就跳过冒号后面的“语句1”,继续比较第二个 case、第三个 case……一旦发现和某个整型数值相等了,就会执行后面所有的语句。假设 m 和“整型数值5”相等,那么就会从“语句5”一直执行到“语句n+1”。
4、如果直到最后一个“整型数值n”都没有找到相等的值,那么就执行 default 后的“语句 n+1”。
扩展资料:
1、switch后面括弧内的【表达式】,ANSI标准允许它为任何类型;
2、当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,否则,就执行default后面的语句。
3、每一个case的常量表达式的值必须互不相同,否则就会出现互相矛盾的现象(对表达式的同一个值,有两种或多种执行方案)。
4、各个case各default的出现次序不影响执行结果。例如,可以先出现"default: ...",再出现"case 'D': ...",然后是"case 'A': ...".
5、执行完一个case后面的语句后,流程控制转移到下一个case继续执行。"case常量表达式"只是起语句标号作用,并不是在该处进行条件判断。在执行swith语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。
参考资料来源:百度百科-switch
switch ( 表达式)
{
case 常量表达式1:
语句1; 可以是多行,可以加括号,也可以不加,到下一个case之前,都是本case的语句范围
[break;] 中括号,表示此语句可以没有
case 常量表达式2:
语句2;
[break;]
……
case 常量表达式n:
语句n;
[break;]
[default:]
语句n+1;
[break;]
}说明:
break
表示退出{
}
case后面只能跟一个值(加冒号:),而不能是一个表达式
switch(表达式)
后面没有分号(;)
{}前后没有分号(;)
default语句可以出现在任何位置,但建议写到最后,表示除去case匹配之外的其它情况。也可以没有default语句
switch语句规则:
case标签必须是常量表达式(constant
expression)
只能针对基本数据类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。
如果两个case语句间没有break,则执行完匹配的case语句后,会顺序执行下面的语句,直到遇到break语句或switch结束
连续的两个case语句表示,这两个case是同一种情况
2010-04-04