发新帖我要提问
12
返回列表
打印

下面的语句能跳出while吗???

[复制链接]
楼主: areshan
手机看帖
扫描二维码
随时随地手机跟帖
21
李冬发| | 2010-8-2 20:14 | 只看该作者 回帖奖励 |倒序浏览
只能跳出IF条件语句,不能跳出WHILE循环语句,你要跳出WHILE语句就得有
while
{
   语句;
   ..........;
   break;
}
tcc8073 发表于 2010-8-2 15:01


好好看书才行啦。

使用特权

评论回复
22
李冬发| | 2010-8-2 20:15 | 只看该作者
volsample的定义得注意,要不怎么都跳不出呢。

使用特权

评论回复
23
雨人浪浪| | 2010-8-2 20:18 | 只看该作者
break只能跳出最近的循环体,以我个人之见跳不出的。

使用特权

评论回复
24
tcc8073| | 2010-8-2 21:40 | 只看该作者
本帖最后由 tcc8073 于 2010-8-2 21:52 编辑

就是看书我也不敢这么用,我自己也没有这么用过,break是能跳出最近的一个循环,如果程序要我来维护,我不保证我能准确判断。程序是用来用的,有时候也要给人看,所以最好自己明白了别人也能明白。

使用特权

评论回复
25
ysf213| | 2010-8-3 09:02 | 只看该作者
没问题,在其他任务中设置volsample等于20就可以退出

使用特权

评论回复
26
Quentin| | 2010-8-3 09:37 | 只看该作者
学习了,谢谢

使用特权

评论回复
27
yuanquan12345| | 2010-8-3 11:49 | 只看该作者
学习

使用特权

评论回复
28
一棵小草| | 2010-8-3 18:05 | 只看该作者
实践是检验真理的唯一标准

使用特权

评论回复
29
huangsun| | 2010-8-5 21:26 | 只看该作者
跳不出来
只能跳出if语句

使用特权

评论回复
30
平常人| | 2010-8-7 22:43 | 只看该作者
答案只有一个字:能!

这么简单的问题居然还有这么多五花八门的解释啊,哈哈哈哈。。。。。。。。

使用特权

评论回复
31
lxyppc| | 2010-8-8 12:48 | 只看该作者
本帖最后由 lxyppc 于 2010-8-8 12:49 编辑

仔细想想楼主的问题不是能与能可以回答的了
因为楼主提供的信息太有限了

while(1)
  {
    if(volsample==20)
    {
      volsample=0;
      break;
    }
  } //当volsample=20时,把它清零,同时跳出while循环。不知道能不能跳出来,因为有break在if语句中。。。volsample是在定时器中断里不停的累加。
看了各位大侠的回复,怎么更加困惑了。。。。if是判断是不是该结束循环,我认为是可以退出来的。

1。
volsample这个变量没有说明是为volatile的。如果是非volatile,那么在寄存器比较多的芯片上编译出的代码可能会让while循环跳过volsample的初始化(视优化级别而定)。

2。
楼主提到volsample是在定时器中断里不停的累加
而这里的判别条件是“等于”,如果volsample加到20的时候没有“及时”执行判断的代码,下次就加到了21,这个时候要再等到20就要“很久”了

使用特权

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

本版积分规则