选择叙述switch…case…小解
多选一情况下采用if/else语句用法有个缺点是,会从头到尾一一的做判断,这里面有个执行效率的问题,也会让代码的可读性降低,
如果有多选一的需要,建议可使用switch…case…,语法如下:
Switch (变数)
{
case 常数值1:
程式叙述1;
break;
case 常数值2:
程式叙述2;
break;
…
case 常数值n:
程式叙述n;
break;
default;
程式叙述
}
变量的值需为整数或字元
如果变量的值相等于常数值x,则跳去执行case x中的程式叙述
每一个case的程式叙述最后都会有一个break,用来跳出switch.
执行完程式叙述后,如果没有遇到break,则会一直照顺序执行后面的程式区块,
如果都每个case都没有成立,则会执行default的程式区块。
default不是必要。
技巧:
可以适当的不在程式叙述中,不加入break,让程式可以接着执行下一个case的程序叙述,达到两个case执行的程式叙述是相同的效果,如下:
Switch (变数)
{
case 常数值1:
case 常数值2:
程式叙述2;
break;
…
case 常数值n:
程式叙述n;
break;
default;
程式叙述
}
上面的结果为,如果变数等常数值1与常数值2,皆会执行程式叙述2。
范例:
#include
#include
int main(void) {
float floatScore;
printf("请输入你的考试成绩(0~100):");
scanf("%f",&floatScore);
switch((int) floatScore/10)
{
case 10:
case 9:
printf("你考试成绩为A级分");
break;
case 8:
printf("你考试成绩为B级分");
break;
case 7:
printf("你考试成绩为C级分");
break;
case 6:
printf("你考试成绩为D级分");
break;
default:
printf("你成为为E级分,需重修");
break;
}
return EXIT_SUCCESS;
}
结果:
请输入你的考试成绩(0~100):100
你考试成绩为A级分
请输入你的考试成绩(0~100):95
你考试成绩为A级分
请输入你的考试成绩(0~100):70
你考试成绩为C级分
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
