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;这样避免的代码冗余。