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;
}
}
}
这样就可以跳出两重,甚至更多的循环了,这种方法是很有用的
for(xxx=xxx; xxx<xxx; xxx++){
for(xxx=xxx; xxx<xxx; xxx++){
xxx;
if(xxx){
goto aaa;//跳出多层循环
}
}
aaa:
xxx;
不能,但是可以用标号代替:
我这个方法不用什么思维,每个xxx有时一样有时不一样,只是表示一个不重要的东西;aaa是一个标号,两个aaa必须一样,但是它俩你可以自己改名字
一个{}内两个break没有意义,第一个break就出去了后面那个不执行
for(;;){
if
{
break //第一层
}
else
{
}
break //第二层
}
这样第一个break运行就跳出了if、else到了第二层运行第二个break跳出for
如果想要跳出双循环请问有什么好的建议么?
不论如何谢谢了
跳出2层的话在出1层前置位flag,之后再条件判断,再break
本回答被提问者采纳~
~
~