Switch语句一般用于多分支情况,比如:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期天
代码如下;
#define _CRT_SECURE_NO_WARNINGS 1
#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");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
case 6:
printf("星期六\n");
case 7:
printf("星期天\n");
}
return 0;
}
首先是case,翻译过来是啥,情况,案例,对吧,所以说,每一个case就是一种情况,但是打印的时候会发现,给全打出来了,为啥嘞,我们在循环中,输入1,没有终止,所以在这之后的打印会全部读取,我们就想要打1得星期一,怎么办呢,代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#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;
}
没错,break就能终止,即跳出循环,不在向下执行,但是,还有一个问题,那就是我们输入9的时候,会没有反应,但是我们至少有个反应对吧,给用户一个反应,那就是输入错误,OK,代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#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;
}
OK,default,这个就相当于一个补充,在这些情况之中没有的时候,我们就给一个报错,这样呢,我们就能看到我们的正常程序了,那么,我想让这个程序的case1-case5都输出工作日而case6-case7都显示休息日呢?代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#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;
default:
printf("输入错误\n");
break;
}
return 0;
}
OK简单明了,略过了,下面再看一段代码:
#include <stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++;
case 2:
n++;
case 3:
switch (n)
{
case 1:
n++;
case 2:
m++;
n++;
default:
break;
}
case 4:
m++;
break;
default:
break;
}
printf("m=%d,n=%d\n", m, n);
return 0;
}
OK,这样嵌套起来,结果是多少呢,来看一下:
#include <stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++; //m=3
case 2:
n++; //n=2
case 3:
switch (n)
{
case 1:
n++; //这一段就没有用了,因为压根进不来
case 2:
m++; //m=4
n++; //n=3
default:
break;
}
case 4:
m++; //m=5
break;
default:
break;
}
printf("m=%d,n=%d\n", m, n); //最后是m=5,n=3
return 0;
}
OK,结束!
相关代码我也会同步到我的码云上,欢迎交流与学习: C语言学习之路: C语言学习当中做的相关代码 - Gitee.com