c语言break跳出2个循环

for(;;){
/*2nd level*/
/*==========================================================================
initial setting(get drink selection)
============================================================================
*/ while(1)
{
/*level 3*/

/*==========================================================================
press start button
============================================================================
*/while(1)
{ /*level 4*/
if (start_GetVal()==1)
{
/*=========================================================================
drink selecting code detect
===========================================================================
*/
if(drink_selection_1_GetVal()==1)
{if (drink_selection_2_GetVal()==1)
{model=3;
break;/* back to level 3*/
break;/* back to level 2*/}
else
{model=2;
break;/* back to level 3*/
break;/* back to level 2*/}
}

else
{if (drink_selection_2_GetVal()==1)
{model=1;
break;/* back to level 3*/
break;/* back to level 2*/}
else
break/* back to level 3 reselect*/;

}}

}
}
可以break连用么?

在循环条件那里改一下,改成一个变量,例如

int a=1,b=2;
int n=1;
int m=1;
for(;m==1;)
{
    while(n)
    {
        if(a<b)
        {
            n=0;
            m=0;
        }
    }
}

这样就可以跳出两重,甚至更多的循环了,这种方法是很有用的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-26
int xxx, xxx;
for(xxx=xxx; xxx<xxx; xxx++){
    for(xxx=xxx; xxx<xxx; xxx++){
      xxx;
      if(xxx){
          goto aaa;//跳出多层循环
      }
  }
aaa:
xxx;

不能,但是可以用标号代替:

我这个方法不用什么思维,每个xxx有时一样有时不一样,只是表示一个不重要的东西;aaa是一个标号,两个aaa必须一样,但是它俩你可以自己改名字

第2个回答  2017-07-23

一个{}内两个break没有意义,第一个break就出去了后面那个不执行

for(;;)
{
if
{
break   //第一层
}
else 
{
}
break   //第二层
}

这样第一个break运行就跳出了if、else到了第二层运行第二个break跳出for

第3个回答  2013-12-18
不可以,break后后面的语句不会执行追问

如果想要跳出双循环请问有什么好的建议么?
不论如何谢谢了

追答

跳出2层的话在出1层前置位flag,之后再条件判断,再break

本回答被提问者采纳
第4个回答  2017-07-23
不能连用,使用boolean 变量标识
~
~
~

相关了解……

你可能感兴趣的内容

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