switch(整型变量)语句
输入 ——> 输出
理解
一种分支语句
用于多分枝的情况
if…eles if…eles太复杂,所以就有了switch语句
需要搭配break实现分支
语法形式
switch(整形变量)
{
语句项;——>一些case语句
,如:case 整形常量表达式;
语句;
}
场景1:一个case匹配一个语句
输入数字几,就输出星期几
#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("选择错误p\n");
break;
}
return 0;
}
语法要求:
switch语句表达式必须是整形
case语句表达式必须是 整型常量/字符(字符存储的的时候存的是ASCALL码值):
语句;
场景2:多个case匹配同一个语句
需求: 1. 输入1-5,输出的是“weekday”;
2.输入6~7,输出的是“weekend”;
#include <stdio.h>
int main()
{
int day;
scanf("%d", &day);
switch(day)
{
case 1;
case 2;
case 3;
case 4;
case 5;
printf("weekday\n");
break;
case 6;
case 7;
printf("weekend\n");
break;
default:
printf("选择错误!!\n");
break;
}
return 0;
}
default子句
当switch表达式的值不匹配所有case的情况时,default后面的语句就会执行。
defaut包括除case的所有情况
每个switch语句只能出现一条default子句
switch嵌套使用
#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++;
break;
}
case 4:
m++;
break;
default:
break;
}
return 0;
}