前言
通过上一篇文章了解完条件分支语句中的if语句相关知识后,其实除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。接下来我将介绍switch语句,废话不多说,我们直接开始吧!
switch语句的基本形式
switch (表达式)
{
case 情况1:
语句块1;
case 情况2:
语句块2;
...
case 情况n:
语句块n;
default
默认情况语句块;
}
例如
#include<stdio.h>
int main()
{
int season = 0;
scanf("%d", &season);
switch (season)
{
case 1:
printf("spring\n");
break;
case 2:
printf("summer\n");
break;
case 3:
printf("autumn\n");
break;
case 4:
printf("winter\n");
break;
default:
printf("input error!\n");
break;
}
return 0;
}
例子中season为要进行判断的条件,case语句检验season值的不同情况。每个case或default语句后都有一个break关键字,break语句用于跳出switch结构,不再执行switch下面的代码。假设season的值为1,那么执行case为1的情况,如果season的值不是case中列出的情况,则执行default中的语句。
多路开关模式的switch语句
switch (表达式)
{
case 1:
语句1
break;
case 2:
case 3:
语句2
break;
...
default:
默认语句
break;
}
举个栗子:
输⼊1-5,输出的是“⼯作⽇”, 输⼊6-7,输出“休息⽇”。
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
}
return 0;
}
if语句和switch语句的对比
1.语法的比较
if...else语句中、if是配合else关键字进行使用的,而switch是配合case使用的;if语句先对条件进行判断,而switch语句后进行判断。
2.效率的比较
if...else结构对开始少量的检验判断速度比较快,但是随着检验的增长会逐渐变慢,其中的默认情况是最慢的。使用if...else结构可以判断表达式,但是也不能减少选择深度的增加使得检验速度变慢的趋势,并且也不容易进行后续的添加扩充。
switch结构中,对其中每一项case检验的速度都是相同的,而default默认情况比其他情况都快。
当判定的情况占少数时,if...else结构比switch结构检验速度快。也就是说,如果分支在3个或者4个以下,用if...else结构比较好,否则选择switch结构。
注意事项:
1. case 和后边的数字之间必须有空格
2. 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。
3.在case语句表示的条件后有一个冒号“:”,在编写程序时不要忘记。
4.在使用switch语句时,如果没有一个case语句后面的值能匹配switch语句的条件,就执行 default语句后面的代码。其中任意两个case语句都不能使用相同的常量值;并且每一个switch结构只能有一个default语句,而且default可以省略。
标签:case,语句,...,default,C语言,break,switch,循环,分支 From: https://blog.csdn.net/he_jia_min/article/details/135901613