独闷闷网

 找回密码
 立即注册
搜索
查看: 2551|回复: 3
收起左侧

[求助] switch语句中的break是否可以省略?

[复制链接]
发表于 2014-7-23 23:57:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 jianhong_wu 于 2014-7-24 00:09 编辑

uiTimeCnt++;  //累加循环次数,
                  if(uiTimeCnt>=const_time_level) //时间到
                  {
                     uiTimeCnt=0; //时间计数器清零
             led_dr=1;    //让LED亮
                         ucLedStep=1; //切换到下一个步骤
                  }
              break;
     case 1:
          uiTimeCnt++;  //累加循环次数,
                  if(uiTimeCnt>=const_time_level) //时间到
                  {
                     uiTimeCnt=0; //时间计数器清零
             led_dr=0;    //让LED灭
                         ucLedStep=0; //返回到上一个步骤
                  }
              break;

这段程序有“ ucLedStep=0; //返回到上一个步骤”和“ucLedStep=1; //切换到下一个步骤”了   那break可否省略呢???
乐于分享,勇于质疑!
发表于 2014-7-24 00:04:04 | 显示全部楼层
本帖最后由 jianhong_wu 于 2014-7-24 00:24 编辑

鸿哥解答:
请看我分析以下代码,
第一种代码:
b=1;
a=1; //一开始a,b初始值是1 switch(a)
{
   case  0:
           b= b +1;
           break;
    case 1:     //a等于1,从这里入口
           b=b +1;   //程序执行到这里时,b变成了2
           //      由于此处没有break语句,它会继续往下执行case 2后面的语句,直到遇到break才退出
   case 2:
           b =b +1;   //此时b变成了3
          break;   //遇到break语直接退出switch
}
最后结果;b变了3.

第二种代码:
b=1;
a=1; //一开始a,b初始值是1 switch(a)
{
   case  0:
           b= b +1;
           break;
    case 1:     //a等于1,从这里入口
           b= b +1;   //程序执行到这里时,b变成了2
           break; //      由于此有break语句,直接退出switch括号,它不会继续往下执行case 2后面的语句
   case 2:
            b = b +1;   //这里没有被程序执行到
          break;
}
最后结果;b变了2

乐于分享,勇于质疑!
 楼主| 发表于 2014-7-24 00:14:26 | 显示全部楼层
好的  懂了  嘿嘿
乐于分享,勇于质疑!
 楼主| 发表于 2014-7-24 00:25:27 | 显示全部楼层
嗯恩恩      明白了   解释的很详细    谢谢鸿哥了
乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2020-10-21 10:13 , Processed in 0.172174 second(s), 17 queries .

快速回复 返回顶部 返回列表