c语言中 break 问题

程序如下while(1){if(a>3){delayms(20);if(a>3)break;}} 这是单片机c语言的。和普通c一样。 break在两次if判断中出现,如果第二次if符合的话执行break,请问是不是直接跳出while1死循环外面了??详细说说,谢谢

是的。
break中断最近的一层循环。

如果下面这样:
for(; ;) // 循环1
{
for(; ;) // 循环2
break;
}

那么break中断的是 循环2

就算是循环中有 if else,那么break就会跳出离它最近的循环。

就算是下面这样有3个if,当i=33时,也会跳出 while(1)

int i = 10;
while (1)
{
if (i < 100)
{
if (i % 11 == 0)
{
if (i % 3 == 0)
{
break;
}
}
}
i++;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-10
break确实不能用于循环语句和switch语句之外

例子中的break都在while循环之内,跳出的地方为包围break最近的一个循环。如下所示:

while(1)             //下面的break跳出的是此处的循环

{

clock_1(hour1,min1,sec1);

if(key3==0||key4==0)

{

delay(10);

if(key3==0||key4==0)

break;//跳出包围他并且离他最近的循环或者switch

}

while(!key3&&!key4);   //这个循环并没有包围break,所以与break没有关系

}本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网