switch语句和break语句switch语句是一种特殊的if......else结构用于判断条件有多个结果情况它可以把多种else if语句变得更易用可读性更高的形式。基本语法形式是switch表达式 { case 1 语句1 case 2 语句2 case 3 语句3 ...... default 语句 }根据switch后面的表达式表达不同的情况时执行一下不同情况的case语句如果找不到对应的case语句则执行default语句语句。这里要注意的是switch后面的表达式必须是整型表达式而case后面的语句则必须是整型常量表达式。这里switch是只是代表了从哪里进去什么意思呢。因为switch表达式会根据这个表达式提供的条件进行判断也就是说switch的表达式的会对应不同的case 整型常量表达式进行选择如果符合条件就执行相应的case语句。直接上案例这里我们需要算一个正整数除以3后的余数是多少23/3的余数是2我们可以从图中得到它是从case 2这个情况进入的。如果是21/3呢那当然是从case 1进入了。图中我们可以看到每条case语句后都加了break这个语句为什么要加这个因为break表示打破跳出的意思在每一个case语句末尾加上这个后当switch根据整型表达式找到对应的case的情况后就会跳出不会向下穿透如果不加break这个语句则会导致switch选择到合适的case情况后会把当前case及后面的所有case情况全部打印直到遇到break如果遇不到则打印到底包括default的语句也会被打印。所以这里一定要注意在switch语句中记得给每一句case情况末尾加一个break;不然就会向下穿透不断打印一下case情况除非你需要这种穿透效果。还要值得注意的是之前提到case后面跟的整型常量表达式这个整型常量表达式什么意思呢就拿以上那个代码讲解当直到给的条件是一个正整数除以3要判断他的余数是多少时无非就三种情况0,1,2这三个值case 0case 1case 2这三种情况中你们发现case后面跟的整数常量值刚好是对应的一个正整数除以3之后的余数这里可以看出来case后面跟的整型常量表达式是对应switch后表达式的对应的不同的情况他是意义的不是随意跟的一个数字表达不同的情况。总结一下switch负责算出一个具体的整型结果而case后面的整型常量表达式就是提前准备好的、固定的“靶子”用来接住switch算出来的结果从而决定程序该走哪条路。就像你拿的飞机座位票一样一张机票对应一个座位不能随意乱坐。switch语句运用的范围在标准的C语言中switch语句基本上只能判断整型数据如来源于互联网整型家族包括int、short、long以及它们的unsigned无符号版本。字符型charchar类型在 C 语言中本质上是占一个字节的整数存储的是字符的 ASCII 码值所以它完全可以用在switch中。这也是为什么之前可以用case A:的原因。仅限于ASCII码值的字符类型本质上就是 ASCII 码值的整数匹配。举类型enum枚举成员在编译器看来也是整数因此也支持。