C语言主要依靠分支来实现选择结构,分支的两个语句分别是 if else 和 swith case
1. swith case
swith case 不可拆开用,表达形式
swith (条件表达式)
{
case 常量 :
语句;
break;
case 常量 :
语句;
break;
}
值得注意的是:
1. swith 后括号中的条件表达式必须为:整形表达式,不论是什么表达式,最后计算出的结果必须为整形。字符也为整形。
2. case 后的常量为:整形常量表达式,不可为变量,且后面 : 不可省略。字符也行。
3. swith case 为多分支语句。
4. break 保证执行当前语句,不执行后面,跳出 switch 不加 break 会从符合条件的 case 依次执行,直到 switch 全部完成。
2. default
表达形式:
swith (条件表达式)
{
case 常量 :
语句;
break;
default :
语句;
}
作用:
当swith (条件表达式)中的计算结果没有与之对应的 case 执行 default
示例:
#include<stdio.h>
int main()
{
// 判断是不是工作日
int a = 0;
scanf("%d", &a);
switch (a)
{
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");
}
return 0;
}
1. 输入为 1 ,执行 case 1 : 后面的语句。
2.不输入1-7 ,则执行 default 与 if lese 类似。
善用break,代码可简化为
#include<stdio.h>
int main()
{
// 判断是不是工作日
int a = 0;
scanf("%d", &a);
switch (a)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default :
printf("输入错误\n");
}
return 0;
}