文章目录
- switch case
- 用法
- 全配套break
- 示例
- 演示
- 不全配套break
- 不怎么常规的写法
- 常规的写法
- 示例1
- 演示1
- 示例2
- 演示2
- 经典成绩分类案例
- 代码
- 演示
switch case
相对于ifelse的嵌套,switch case 有点像并列的感觉
用法
switch (一定要放整数类型,int 型变量、char 型变量,但不能放float 型变量、double 型变量、小数常量通通不行){
//这里面罗列(枚举)所要的事件(情况),格式case xx: break;
case 0:
break;
case 1:
break;
default :break;//其他情况 全部归到default里面
}
全配套break
这里带break;每执行一个情况(事件),就跳出switch,注意细节;
示例
#include <stdio.h>
int main()
{
int cmd ;
printf("这是一个switch case的程序================\n");
puts("请输入一个整型数字");
scanf("%d",&cmd);
switch(cmd){
case 1:
puts("满足了条件1的情况");
break;
case 2:
puts("满足了条件2的情况");
break;
case 3:
puts("满足了条件3的情况");
break;
default:
puts("其他非1,2,3的情况");
break;
}
return 0;
}
演示
不全配套break
不带break,会执行多个情况(事件)直到某个情况里面带有break才会跳出switch,一般满足多个情况,按照示例写法,注意细节;
不怎么常规的写法
#include <stdio.h>
int main()
{
int cmd ;
printf("这是一个switch case的程序================\n");
puts("请输入一个整型数字");
scanf("%d",&cmd);
switch(cmd){
case 1:
puts("满足了条件1的情况");
//break;
case 2:
puts("满足了条件2的情况");
break;
case 3:
puts("满足了条件3的情况");
break;
default:
puts("其他非1,2,3的情况");
break;
}
return 0;
}
演示:
常规的写法
示例1
#include <stdio.h>
int main()
{
int cmd ;
printf("这是一个switch case的程序================\n");
puts("请输入一个整型数字");
scanf("%d",&cmd);
switch(cmd){
case 1:
case 2:
puts("满足了条件1的情况");
puts("也满足了条件2的情况");
break;
case 3:
puts("满足了条件3的情况");
break;
default:
puts("其他非1,2,3的情况");
break;
}
return 0;
}
演示1
示例2
char 类型作为情况索引,其它负数作为情况自行测试
#include <stdio.h>
int main()
{
int cmd ;
char cdata;
printf("这是一个switch case的程序================\n");
puts("请输入一个整型数字");
scanf("%d",&cmd);
switch(cmd){
case 1:
case 2:
case 3:
case 4:
case 5:
puts("满足了条件1,2,3,4,5的情况");
break;
case 6:
puts("满足了条件6的情况");
break;
default:
puts("其他非1,2,3,4,5,6的情况");
break;
}
getchar();//吸收scanf的回车结束符,一定要注意
printf("char 类型作为情况索引================\n");
puts("请输入一个大写字母");
scanf("%c",&cdata);
switch(cdata){
case 'A':
puts("满足了条件A的情况");
break;
case 'B':
puts("满足了条件B的情况");
break;
case 'C':
puts("满足了条件C的情况");
break;
default:
puts("其他非A,B,C的情况");
break;
}
return 0;
}
演示2
经典成绩分类案例
代码
#include <stdio.h>
int main()
{
int score;
printf("经典成绩分类编程\n");
puts("请输入分数");
scanf("%d",&score);
switch(score/10){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
printf("等级为D,不及格,学渣\n");
break;
case 6:
case 7:
printf("等级为C,勉强及格,一般般\n");
break;
case 8:
case 9:
printf("等级为B,良好,不错了\n");
break;
case 10:
printf("等级为A,优秀,学霸\n");
break;
default:
puts("非法输入");
break;
}
return 0;
}
这个代码稍微有点问题,就是100-109都是可以触发case10事件的
演示
----- 如有错误欢迎大家批评指正!!!