分支和循环(switch-case结构认识和使用)

时间:2022-10-10 15:17:42

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结构做范围判断