原创 小程序验证break在while、switch、if中的跳出

2013-11-5 16:08 4616 11 12 分类: MCU/ 嵌入式 文集: 学习记录

项目中碰到如下结构程序:

    switch(){

         case :

               while(1){

                      if(){

                             break;

                       }

               }

     }

不确定break使程序跳到哪里,根据功能可以猜到break使程序直接跳出while(1),编写如下程序做测试:

int main()
{
    int i = 1;
    volatile int k = 0;
    switch(i){
        case 1 :
            while(1){
                if(k != 4){
                    k += 1;break;
                }
            k = 7;break;
            }
            k=5;break;
        case 2:
            k = 2;break;
        default:
            k = 3;break;
    }

   return 0;

}

调试结果:k=5。验证了猜想。说明break不能跳出if可以跳出while()。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户377235 2016-2-24 09:45

没感觉能证明不能跳出if呀!至少也得把break放到if语句的第一行呀!而且也得分别输出才能证明是否走到k+=1
相关推荐阅读
用户387134 2014-12-29 10:58
centos6.5修改/etc/profile文件后无法登录图形界面
为了方便使用vivado,将./setting64.sh中提到到路径添加到/etc/profile中,reboot后发现无法登录图形界面。搜索解决方案,需要进入单人模式来改回文件内容。   ...
用户387134 2014-12-22 20:38
ERROR:Pack:1107 - Pack was unable to combine the symbols listed below...
CentOS 6.5下安装了ISE 14.7,想测试jtag驱动是否安装成功。编写了一个测试程序,发现在MAP时始终报如下错误,未搜索到好的解决方案。 ERROR:Pack:1107 - Pa...
用户387134 2014-08-07 14:50
Linux环境下ISE安装成功后无法启动
在scientifix linux(kernel 2.6)下安装了ISE14.4,安装成功,然后source settings32.sh。之后用ise命令不能启动软件。经查阅资料是kernel2....
用户387134 2013-10-25 14:01
汇编延时一秒子程序
单片机实验,使LED灯循环亮一秒灭一秒。单片机时钟频率12MHz。                         ORG 0000H                SETB P1....
用户387134 2013-10-18 10:23
enum的用法
枚举 摘自:维基百科,自由的百科全书 在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)...
EE直播间
更多
我要评论
1
11
关闭 站长推荐上一条 /3 下一条