switch case,若无break

来源:互联网 发布:多种乐器软件 编辑:程序博客网 时间:2024/05/01 04:34
#include <stdio.h>

int main()
{
 char x = 'B';
 switch (x){
   case 'A':printf("A");
   case 'B':printf("B");
   case 'C':printf("C");
   default: printf("D");
 }
}


result: BCD

哎...
case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即"只是开始执行处的入口标号".因此,一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行,而且执行完一个case后面的语句后,若没遇到break语句,就自动进入下一个case继续执行,而不在判断是否与之匹配,直到遇到break语句才停止执行,退出break语句.因此,若想执行一个case分之后立即跳出switch语句,就必须在此分支的最后添加一个break语句.