打印

问个初级的问题,关于switch----case 语句的用法。

[复制链接]
5201|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mazhanping123|  楼主 | 2012-3-6 22:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写单片机的程序时遇到了这个问题,用switch语句写个分支程序,case语句列出了可能的几个分支,最后不加default,  当遇到case语句列出分支以外的状态,是否会让程序出现不确定性或跑飞的情况呢?
     在网上查到了一段介绍:default总是放在最后,这时default后不需要break语句.并且,default部分也不是必须的,如果没有这一部分,当switch后面圆括号中表达式的值与所有case后面的常量表达式的值都不相等时,则不执行任何一个分支直接退出switch语句.此时,switch语句相当于一个空语句.
     这样是否可以认为switch语句最后不加default, 出现case语句列出值之外的值程序也不会出错呢??
       感谢各位大侠解答。

相关帖子

沙发
古道热肠| | 2012-3-6 22:42 | 只看该作者
程序是挨个CASE,CASE完了之后跳出SWich,不会跳飞回来来的。
Switch(ucValue)
{
case 'a':
       do something;
      break;
}
所有的Case 和default 做完操作后就跑到我这儿了;

使用特权

评论回复
板凳
yewuyi| | 2012-3-7 09:14 | 只看该作者
1、不会出现不确定性,如果不在罗列的case分支中,则会直接退出switch。
2、一般写代码的时候,在default分支中可能还会做一些操作,此时如果没有default分支则不行。
3、养成良好的C语言代码风格很重要,即使这样写没有造成什么后果,但这样的代码对于阅读和其他人的理解来说,也会造成一定的障碍,多打一行代码不会很累人。

使用特权

评论回复
地板
mazhanping123|  楼主 | 2012-3-7 13:42 | 只看该作者
感谢两位大侠。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

55

帖子

0

粉丝