switch()语句块里的case:相当于一个开关,只要满足case的条件,开关就打开,从而执行case语句块的内容,而break就相当于一个出口,只要碰到了break,就跳出switch语句块,否则就继续执行下一条语句,直到碰到了break或者switch语句块已经全部执行才会跳出语句块。
#include<stdio.h>
int main()
{
int num = 0;
printf("请输入一个数:\n");
scanf("%d", &num);
switch (num)
{
case 1:
num += 10; //无break;
case 2:
num -= 1;
break;
case 3:
num *= 3; //无break;
case 4:
num /= 2;
break;
case 5:
num %= 5; //无break;
default:
printf("这儿什么也不做!\n");
break;
}
printf("num = %d\n", num);
system("pause");
return 0;
}
运行程序,根据输出结果也可以得出:
从第二张图片可以很明显的看出,程序在进入case 5:执行完里面的语句后,没有退出switch()语句块,而是进入default执行了那个输出语句才退出的,由此,可以证明前面的结论。
一般的,为了保证程序的健壮性和程序的逻辑正确性,在每个case :和default :后面都跟着braek;语句,当然,也有例外的时候,当多个case :的处理机制相同时,那么可以把这几个case :连着写,在最后一个case :的最后加上break;这样避免的代码冗余。