A)switch(x)
{case 1.0:printf("*\n");
case 2.0:printf("**\n");}
B)switch((int)x);
{case 1:printf("*\n");
case 2:printf("**\n");}
C)switch(a+b)
{case 1:printf("*\n");
case 2+1:printf("**\n");}
D)switch(a+b)
{case1:printf(**\n);}
casec:printf(**\n);}
问:A选项哪里错了??
若有定义:float x=1.5;int a=1,b=3,c=2;,则正确的switch语句是:
switch(a+b)
{case 1:printf("*\n");
case 2+1:printf("**\n");}
所以这一题选择C。
switch语句的基本形式
switch(表达式)
{
case 常量表达式1: 语句1;
case常量表达式2: 语句2;
.
.
.
case常量表达式n: 语句n;
default: 语句n+1;
}
扩展资料:
switch后面的括号内的表达式,ANSI标准允许为任何类型。
当表达式与某一个case后面的常量表达式相等时,就执行case后面的语句,若没有匹配,则执行default后面的语句。
每一个case的常量表达式的值须互不相同,否则便会出现矛盾。
各个case和default的出现次序不影响结果。
执行完一个case语句,流程就转移到下一个case并继续执行,因此在case的分支后,加break语句来跳出switch语句。