C语言的switch语句中的条件都可以是什么类型?

Python0113

C语言的switch语句中的条件都可以是什么类型?,第1张

C语言的switch语句只能针对基本数据类型使用,这些类型包括int、char、枚举、bool等。对于其他类型,则必须使用if语句。

在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。

case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。

扩展资料

C语言的switch其他使用规则:

1、当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。

2、当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。

3、不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。

4、一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。

是的。

case 几 冒号,表示当开关值x 等于 几 的 入口。x=1, 从 case 1 进入。x=2, 从 case 2 进入....

从 case 1 进入后,按语句顺序执行: (1)执行 a-- (2)执行 break因为遇到 break 语句,所以 终止 并 跳出 开关 语句。不再执行 case 2和case 3。

如果 没有 break,x=1, 语句顺序是:

case 1: a--

case 2: b++break

case 3: a++b++

那么 从 case 1 进入后,按语句顺序执行: (1)执行 a-- (2) 进入case 2: (3) 执行b++(4) 执行 break遇到 break 语句,所以 终止 并 跳出 开关 语句。不再执行case 3。

选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