分支和循环(switch-case结构认识和使用)
精选
原创
©著作权归作者所有:来自51CTO博客作者Woking77的原创作品,如需转载,请与作者联系,否则将追究法律责任
1.语法:
switch(表达式)
{case 值1:执行代码;break;
case 值2:执行代码;break;......
default:执行代码;break;}
注意:switch后的表达式没有说必须是一个条件表达式可以是变量常量,表达式
2.执行步骤
a.先计算switch后面的表达式结果。
b.从上到下依次与case后面的值进行相等比较判断
c.只要有一个相等,那么结束整个程序,不相等则继续判断
d.如果所有的case值和switch后的表达式不相等则执行default中的代码
例
#include<stdio.h>
int main()
{
printf("请输入一个整数");
int num = 0;//随机输入一个数
scanf_s("%d", &num);//
switch (num)
{
case 1://定义num的值
printf("输入的是1");
break;//结束上一个case
case 2:
printf("输入的是2");
break;
default://都不是的话执行这一个
printf("你不行啊");
break;
}
return 0;
}
3.case穿透
a.break的意思是使结束case后面的代码。如果case块中没有break,那么它就会穿透下一个case块中。
所以一般情况,每一个case后面都要加一个break
b.如果多个case块的处理逻辑一样,可以用多个case进行简写利用穿透
#include<stdio.h>
int main()
{
printf("请输入一个整数");
int mouth = 0;//随机输入一个数
scanf_s("%d", &mouth);//
switch (mouth)
{
case 1:
case 2:
case 3://利用穿透将123表示出来,将一个范围表示出来
printf("这是第一季度");
break;//直接结束
case 4:
case 5:
case 6:
printf("这是第二季度");
break;
case 7:
case 8:
case 9:
printf("这是第三季度");
break;
case 10:
case 11:
case 12:
printf("这是第四季度");
break;
default://都不是的话执行这一个
printf("你不行啊");
break;
}
return 0;
}
4.注意:a.switch后面不能加小数
b.case块下面下面可以写任意代码,要符合逻辑
c.case块下面代码可以加大括号,也可以不加。但如果要声明变量时一定要加大括号。不然不能声明变量!!!
d.default可以删除
5.switch-case与if结构
a.switch-case可以写出来的,if结构一定能写出来。但用if结构写出来的,switch-case不一定能写出来。
b.建议switch-case做等值判断。
if结构做范围判断