初识c语言
分支语句(选择结构)
switch 语句
语法结构:
switch(整形表达式)(注:只可以是整型,但可以为变量)
{
语句项
}
这里语句项是一些 case 语句 如下:
{
case 整型常量表达式 :(注:这里的整形常量表达式不可以被别的表达式替换,且一定是整型常量,例如 float double 都不可以!!!)
语句;
}
例句一段代码:
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期一\n");
case 2:
printf("星期二\n");
case 3:
printf("星期三\n");
case 4:
printf("星期四\n");
case 5:
printf("星期五\n");
case 6:
printf("星期六\n");
case 7:
printf("星期天\n");
}
return 0;
}
但是,经过运行我们发现,在输入“1”时,下面几种 case 依然会被执行,所以这段代码是有问题的,我们做出如下调整,使其运行 case 1 时可以跳出循环,这里我们使用关键字 break :
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
}
return 0;
}
这样便可以使其执行完目标代码时,直接跳出代码块,输出结果。因此我们得知,switch 语句要搭配 case break 使用
但是,如果我们的需求变了,例如 case 1 ~5表示的是工作日,case6
~7是休息日,我们便可以合并 case 1~5、case 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;
}
这样便可以省去 break 的过程,使代码看起来简洁明了
但是这里要注意:即使,最后一段代码不加 break 也可以成功运行代码,不过我们为了培养良好的编写习惯,最好按照格式,在末尾处按规定添加 break ,以便于其他人接着代码结束处,继续编写代码
此处还有个问题,按照代码所示,我们可输入的数字只有 1~7 ,但是,如果要是输入一个 8 怎么办呢?,我们如实输入数字 8 ,结果啥也得不到,没有显示任何东西,这无疑是一个漏洞。于是,我们又要提到一个关键字 default, 把default添加在代码下一行,意为默认情况,即没有输入的选项,输入错误。 代码如下:
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
default :
printf("输入错误\n");
break;
}
return 0;
}
输入1-7以外的数字便会提示“输入错误”
此处的 default 语句可以放到代码块中的任意位置,不会影响代码的运行