合法的switch语句(switch语句详解)
switch语句的格式和功能
switch语句的格式为:
switch(条件)语句
其中,条件的类型可以是整数类型,枚举类型,或者类类型(但该类需要有单一的转换到整数类型或(可以是字符类型,但不能是浮点类型、字符串、指针类型等),语句部分不一定非得是一条复合语句。因此,switch("123"[2]+(int)3.1);是条合法的switch语句,switch(j)case 5:i++;也是条合法的switch语句。如果switch的语句部分是一条非复合语句,则其内定义的变量作用域,效果上等同于该条语句加上了,因此这并不会导致同一局部域下的重复定义错误。
若有定义float w; int a, b; ,则合法的switch语句是( )。(1分)
是switch(a+b);{case1:printf(“*\n”);case。2:printf(“**\n”);default:printf(“\n”);}。
每个printf(“**\n”);后要加break。
“%m。nf”:输出浮点数,m为宽度,n为小数点右边数位,这是右对齐,要左对齐:在m前加个“-”号
e。g。“%3。1f”输入3852。99,右对齐。
扩展资料:
switch后面的括号内的表达式,ANSI标准允许为任何类型。
当表达式与某一个case后面的常量表达式相等时,就执行case后面的语句,若没有匹配,则执行default后面的语句。
每一个case的常量表达式的值须互不相同,否则便会出现矛盾。
各个case和default的出现次序不影响结果。
C语言基础选择题,switch相关。详细解释?
选择D
A case分支都只能是整型常量
B b是变量,不是常量
C 同B,a-b不是常量的表达式
若有定义:float w;int a,b;,则合法的switch语句是
选C;因为switch语句中的条件只能是int,char和枚举类型中的一种。
switch语句,switch后的表达式和case后的常量表达式,可以是一个范围么?
可以是。switch后面的表达式或变量表示的是有很多种取值的量,而case后的常量值就是switch的变量可能取到的值得一种。
一般格式:
switch (表达式)
{
case 常量标号1:语句序列1;
break;
case 常量标号2:语句序列2;
break;
…
case 常量标号n:语句序列n;
break;
default: 语句S;
}
扩展资料:
其中:
①表达式:可以控制程序的执行过程,表达式的结果必须是整数、字符或枚举量值。
②case后面的常量标号,其类型应与表达式的数据类型相同。表示根据表达式计算的结果,可能在case的标号中找到,标号不允许重复,具有唯一性,所以,只能选中一个case标号。尽管标号的顺序可以任意的,但从可读性角度而言,标号应按顺序排列。
③语句序列是switch语句的执行部分。针对不同的case标号,语句序列的执行内容是不同的,每个语句序列允许有一条语句或多条语句组成,但是case中的多条语句不需要按照复合语句的方式处理(用{}将语句括起来),若某一语句序列i为空,则对应的break语句可以省略(去掉)。
④break是中断跳转语句,表示在完成相应的case标号规定的操作之后,不继续执行switch语句的剩余部分而直接跳出switch语句之外,继而执行switch结构后面的第一条语句,如果不在switch结构的case中使用break语句。程序就会接着执行下面的语句。
⑤default用于处理所有switch结构的非法操作。当表达式的值与任何一个case都不匹配时,则执行default语句。