C语言示例讲解switch分支语句的用法
脚本之家 / 编程助手:解决程序员“几乎”所有问题!
脚本之家官方知识库 → 点击立即使用
1、了解switch分支语句
switch语句也是一种分支语句,常常用于多分支的情况。
比如:
输入1,就会输出星期一
输入2,就会输出星期二
…
输入7,就会输出星期七
对于这样的代码需求,如果用if 、else if、else的形式就会显得太复杂。如何用switch语句实现该功能呢?switch语句的结构又是怎样的呢?
switch(整型表达式)
{
语句项;
}
其中,整型表达式必须为整型,且为常量(字符也可以,因为字符也属于是整型的一种,因为字符存储的时候用的是字符的ASCII码值);语句项是一些case语句。
case 整型常量表达式;
语句;
代码实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | int main() { int day = 0; scanf ( "%d" ,&day); switch (day) { case 1: printf ( "星期一\n" ); case 2: printf ( "星期二\n" ); case 3: printf ( "星期三\n" ); case 4: printf ( "星期四\n" ); case 5: printf ( "星期五\n" ); case 6: printf ( "星期六\n" ); case 7: printf ( "星期日\n" ); } return 0; } |
运行该代码,发现运行之后得到的结果如下:
1
星期一
星期二
星期三
星期四
星期五
星期六
星期日
显然,这样的结果是不对的。因为执行完case 1 之后,没有东西阻止它,它就会一直case 2、case 3…地执行下去。若在程序运行的时候,输入的是6,就会输出 星期六星期日。switch后面的表达式(day)是几,它就会从case 几进去,决定入口的是表达式day的值以及case后面的值。
修改程序:在每个case后面加上break,以此来跳出case。
case决定的是入口,而break决定的是出口,这才实现了真正的分支。
2、示例
输入1-5就输出工作日,输入6-7就输出休息日。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | int main() { int day = 0; scanf ( "%d" ,&day); switch (day) { case 1: case 2: case 3: case 4: case 5: printf ( "工作日\n" ); break ; case 6: case 7: printf ( "休息日\n" ); break ; } return 0; } |
测试运行结果如下:
5
工作日
break语句的实际效果是把语句列表划分为不同的部分。
有一个编程好习惯:在最后一个case语句的后面也加上一条break语句。万一之后要在原先程序的基础上再加上一些其它case语句,不至于出现上面的输入1,一下子星期一到星期天全部打印出来的情况。
3、default子句
如果表达的值与所有的case标签的值都不匹配怎么办?其实也没什么,结果就是所有的语句都被跳过而已,程序并不会终止,也不会报错。因为这种情况在C语言中并不认为是错误,但是,如果并不想忽略不匹配所有标签的表达式怎么办?这时候就可以在语句列表中增加一句default子句,将其写在任何一个case标签可以出现的位置。
当switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。注意:每个switch语句中只能出现一条default子句。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | int main() { int day = 0; scanf ( "%d" ,&day); switch (day) { default : printf ( "输入错误\n" ); break ; case 1: printf ( "星期一\n" ); break ; case 2: printf ( "星期二\n" ); break ; case 3: printf ( "星期三\n" ); break ; case 4: printf ( "星期四\n" ); break ; case 5: printf ( "星期五\n" ); break ; case 6: printf ( "星期六\n" ); break ; case 7: printf ( "星期日\n" ); break ; } return 0; } |
测试结果:
9
输入错误
4、练习
看程序运行的结果是多少?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | int main() { int n = 1; int m = 2; switch (n) { case 1 : m++; case 2: n++; case 3: switch (n) //switch可以嵌套使用 { case 1: n++; case 2: m++; n++; break ; } case 4: m++; break ; default : break ; } printf ( "m=%d,n=%d\n" ,m,n); return 0; } |
主要就是考察switch里面的break的作用。
最终的运行结果如下:
m=5,n=3
到此这篇关于C语言示例讲解switch分支语句的用法的文章就介绍到这了,更多相关C语言switch分支内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
相关文章
详解C++异常处理(try catch throw)完全攻略
这篇文章主要介绍了详解C++异常处理(try catch throw)完全攻略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-03-03
最新评论