打印

不知道能不能跳出来

[复制链接]
698|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hanwe|  楼主 | 2019-2-14 16:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
while(1)
{
if(volsample==20)
{
volsample=0;
break;
}
} //当volsample=20时,把它清零,同时跳出while循环。不知道能不能跳出来,因为有break在if语句中。。。volsample是在定时器中断里不停的累加
沙发
guoyt| | 2019-2-14 16:11 | 只看该作者

如果你的volsample在其它地方(中断或其它任务)有引用的话,可以跳出循环。

使用特权

评论回复
板凳
wangpe| | 2019-2-14 16:13 | 只看该作者

可以

使用特权

评论回复
地板
guoyt| | 2019-2-14 16:16 | 只看该作者
volsample=0   在其它子程序中有的话就会跳到那个地方,但是while(1)还是不停检测volsample的

使用特权

评论回复
5
zhuww| | 2019-2-14 16:19 | 只看该作者

volsample在哪里增1?  
在中断里吗?

使用特权

评论回复
6
zhanglli| | 2019-2-14 16:25 | 只看该作者
只能跳出IF条件语句,不能跳出WHILE循环语句,你要跳出WHILE语句就得有
while
{
      语句;
      ..........;
      break;
}

使用特权

评论回复
7
lium| | 2019-2-14 16:28 | 只看该作者


break;能够跳出的是它所在的第一层循环;LZ的if( )不是循环结构。所以break不作用于if(),
而作用于while(1){ }。

使用特权

评论回复
8
yufe| | 2019-2-14 16:31 | 只看该作者
break只能跳出最近的循环体,以我个人之见跳不出的。

使用特权

评论回复
9
llia| | 2019-2-14 16:35 | 只看该作者

可以跳出的。1,跳出switch语句
2,跳出最近的循环。

使用特权

评论回复
10
wangpe| | 2019-2-14 16:38 | 只看该作者
就是看书我也不敢这么用,我自己也没有这么用过,break是能跳出最近的一个循环,如果程序要我来维护,我不保证我能准确判断。程序是用来用的,有时候也要给人看,所以最好自己明白了别人也能明白。

使用特权

评论回复
11
guoyt| | 2019-2-14 16:41 | 只看该作者

没问题,在其他任务中设置volsample等于20就可以退出

使用特权

评论回复
12
yufe| | 2019-2-14 16:43 | 只看该作者
按键扫描用一个,输出定时用一个

使用特权

评论回复
13
yufe| | 2019-2-14 16:47 | 只看该作者
怎么全说没问题可以的啊?!
说实话,能不能跳出得看RP!

while(1)
     {
       if(volsample>=20)
       {
         volsample=0;
         break;
       }
     } // 这下就真的没问题了。

使用特权

评论回复
14
langgq| | 2019-2-14 16:50 | 只看该作者

当然可以,看来是个爱思考的 孩子,我曾经也在怀疑,写程序测试过

使用特权

评论回复
15
langgq| | 2019-2-14 16:56 | 只看该作者
你就是:
while(1){
     if(a){
         if(b){
           if(c){
               break;
           }
     }
     }
}
,只要能运行到break,也啪的一声跑出去了;

使用特权

评论回复
16
langgq| | 2019-2-14 16:56 | 只看该作者

这样的态度,想要更深的发展是很难的。

这样的问题,首先先查书本!不理解的再百度!看了之后写段代码测试它!这个很难吗?分分钟的问题。

使用特权

评论回复
17
wangzsa| | 2019-2-14 16:59 | 只看该作者

这个要看这段代码在你的全部程序代码中的位置而定,如果实在MAIN中,是跳不出的,一直会在此代码段中循环。有一种情况例外,如果volsample在中断中,程序会在中断发生时,前去执行中断

使用特权

评论回复
18
wangzsa| | 2019-2-14 17:06 | 只看该作者

我也认为 楼主没有找到学习方法,这样的问题不应该问!
就算不看书,自己用C试一下 就知道了。

使用特权

评论回复
19
zhuww| | 2019-2-14 17:09 | 只看该作者
不怀疑,能跳出来

使用特权

评论回复
20
zhuww| | 2019-2-14 17:13 | 只看该作者

能跳出来是肯定的。
不过,你编程的意图就是volsample为20时停止循环,为什么不这样写呢?
while(volsample!=20)
{
...
}
volsample=0;

使用特权

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

本版积分规则

979

主题

8749

帖子

4

粉丝