[应用相关] 不知道能不能跳出来

[复制链接]
 楼主| boy1990 发表于 2020-10-18 14:22 | 显示全部楼层 |阅读模式
while(1)
   {
     if(volsample==20)
     {
       volsample=0;
       break;
     }
   } //当volsample=20时,把它清零,同时跳出while循环。不知道能不能跳出来,因为有break在if语句中。。。volsample是在定时器中断里不停的累加。
CallReceiver 发表于 2020-10-18 14:25 | 显示全部楼层
如果你的volsample在其它地方(中断或其它任务)有引用的话,可以跳出循环。
hfdy01 发表于 2020-10-18 14:30 | 显示全部楼层
volsample=0   在其它子程序中有的话就会跳到那个地方,但是while(1)还是不停检测volsample的
xia00 发表于 2020-10-18 14:32 | 显示全部楼层
volsample在哪里增1?  
在中断里吗?
feiqi1 发表于 2020-10-18 14:37 | 显示全部楼层
只能跳出IF条件语句,不能跳出WHILE循环语句,你要跳出WHILE语句就得有
while
{
    语句;
    ..........;
    break;
}
更多操作
androidbus 发表于 2020-10-18 14:39 | 显示全部楼层
LZ的if( )不是循环结构。所以break不作用于if(),
而作用于while(1){ }。
litengg 发表于 2020-10-18 14:45 | 显示全部楼层
break只能跳出最近的循环体,以我个人之见跳不出的。
qiangweii 发表于 2020-10-18 14:49 | 显示全部楼层
可以跳出的。1,跳出switch语句
2,跳出最近的循环。
bbapple 发表于 2020-10-18 14:54 | 显示全部楼层
就是看书我也不敢这么用,我自己也没有这么用过,break是能跳出最近的一个循环,如果程序要我来维护,我不保证我能准确判断。
handleMessage 发表于 2020-10-18 14:56 | 显示全部楼层
没问题,在其他任务中设置volsample等于20就可以退出
zhouhuanの 发表于 2020-10-18 15:04 | 显示全部楼层
while(1)
   {
     if(volsample>=20)
     {
       volsample=0;
       break;
     }
   } // 这下就真的没问题了。
wanglaojii 发表于 2020-10-18 15:08 | 显示全部楼层
你就是:
while(1){
   if(a){
       if(b){
         if(c){
             break;
         }
     }
   }
}
,只要能运行到break,也啪的一声跑出去了;
laozhongyi 发表于 2020-10-18 15:15 | 显示全部楼层
如果实在MAIN中,是跳不出的,一直会在此代码段中循环。
Edisons 发表于 2020-10-18 15:19 | 显示全部楼层
ontinue,break是跳出最近的一层循环,跟if没有关系。不只是while,就是for也照常可以跳出
_gege 发表于 2020-10-18 15:24 | 显示全部楼层
这问题看似很小,有时候调试起来会要人命。
Mozarts 发表于 2020-10-18 15:26 | 显示全部楼层
这个设置的跳出循环机制是很重要的
Listate 发表于 2020-10-18 15:31 | 显示全部楼层
达到if的条件的了,通过break语句是可以跳出while循环的
忘了我是谁 发表于 2020-10-21 08:15 来自手机 | 显示全部楼层
看来很多人都不确定,说明没有探究过。我来总结一下。这个是可以跳出一次最近的一个循环体或者switch的。if并不是循环体。循环体里使用if判断退出条件也是经常用到的方式,这样用没有任何不妥。就算是主程序的while也一样跳出,然后运行结束。此例的跳出条件必须是,变量在其他高优先级的代码里进行改变,比如中断里。用==判断是有风险的。
wowu 发表于 2020-11-13 10:41 | 显示全部楼层
break只能跳出一层吧
xiaoqizi 发表于 2020-11-13 10:44 | 显示全部楼层
把那个加一个else  把break放到else就行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

81

主题

1769

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部