引言:在C语言中 不光只有IF语句能够实现分支结构 C语言还提供了一种语句来实现分支结构 那就是今天要分享给大家的switch语句
1.switch语句
上图是switch语句的基本语法 switch语句和IF语句的作用差不多 在特定情况下使用switch语句可以大大缩小我们的代码长度 提高代码的效率
解释:switch语句会根据expression表达式的值选择进入相应值的case入口(就是case右边的value的值),然后执行相关语句 如果表达式的值与所有case入口的值不一样的话 就执行default语句
注:1.switch语句右边的表达式必须是整形表达式 2.case后面的值必须是整形常量表达式 如1 2 3..... 3.case与后面的数字需要用空格隔开
1.2switch语句中break的作用
break 顾名思义就是打破的意思 在今天的switch语句中 break的作用便是跳出(打破)该语句 那么该如何使用呢?
在上面的代码中 我们输入了7 7%3等于1 所以switch语句会进入case 1从而打印“余数是1” 但是程序走起来之后最后的结果却表示程序也进入了case 2打印了“余数是2” 这是为什么呢? 原因是switch语句在进入入口之后会“一条路走到黑”直到走出switch语句 在进入case 1后switch语句会继续执行下面的case 2 要想让switch语句只进入一个入口电话 就要用到break 语句
如上图 在加入了 break语句后 便打印了正确的答案 这就是break语句在switch中的用法 在每一个case的最后加入break语句就能保证switch语句只执行一个入口的代码
下面再给大家展示一下switch语句的用法
上图代码能够根据输入的day的值来打印星期几 每个case的最后都加入了break语句 那如果我们改变一下要求 如果是1-5就打印“工作日” 6和7就打印休息日 那我们该如何修改代码呢? 有的同学会想只要把每个case语句中printf要打印的字改一下就好 这样确实可行 但是我们有别的办法让代码的效率更高 那就是应用switch语句“一条路走到黑”的特点来修改代码 如下图
上图代码不仅实现了我们的目标 效率也更高了 不管输入1-5哪个数 最终都会走到case 5并打印“工作日” 这个方法非常巧妙
1.3 switch语句中的default
在文章的开头便提过了default语句 在switch语句中可能出现表达式的值与case 右边的值不匹配 但我们依然要对该值做出响应 这时我们就要用到default语句
我们再应用上面的代码作为例子 我们需要用户输入1-7来打印星期几 但是可能会出现输入其他数字的情况 那我们就要提醒用户输入错误 所以我们就要用到default语句 当输入1-7之外的值时 便会进入default语句从而提醒用户输入错误
注:default语句在switch语句中的位置任意 可以在任意case之前 如果switch语句中未使用break语句 那么“一条路走到黑” 的情况下也会进入default语句