switch语句是C语言分支语句(选择语句)的二把手,主要用于多分支选择。
它的基本语法结构如下:
switch(整型表达式)
{
语句项;
}
其中,语句项的格式如下:
case 整型表达式: 语句1; break;
case 整型表达式: 语句2; break;
……
case 整型表达式: 语句n;break;
default:语句;break;
break的作用: 用于结束选择。
default的作用:default用于处理不符合所有case 整型表达式 的情况。
让我们来写一个代码来表示简单的日程表
当我们输入3时,case 3 符合我们输入的数,那么代码就会执行case 3。瞧:
同理,当我们输入8时,因为所有的case 都不满足我们输入的数,那么代码将会执行default。让我们看看:
是吧,和我们想的一样。
如果我们去掉每个case 后面的break,会发生什么事呢?让我们试试
我们可以看到,当我们输入3时, 代码进入case 3,执行完里面的语句后,并没有跳出选择,而是无条件继续执行下面的选择。这时,程序要么执行完后面的选择,要么碰到break,才能跳出选择。
所以,我们要养成在写完每一个case 后加break的习惯!
另外,对于default语句,它的位置可以不固定,放在switch语句内的哪里都可以。
!!!注意事项!!!
1.switch语句可以嵌套使用(就是switch里面塞switch)
2.switch(整型表达式)中的“整型表达式”的结果只能是整型!
3.case 整型表达式 中的“整型表达式”的结果也只能是整型!
case 2*3 等价于 case 1+5 等价于 case 6;
最后,switch语句和它的老大哥if…else语句有什么区别呢?
1.switch语句只进行等值判断,而if…else语句可以进行区间判断。
switch语句的汇编结构远远高于if…else语句,在分支条件比较多的时候这种情况愈发明显