我有嵌套的do-while,while和for循环。
有没有办法确定哪个循环到"继续"至?各种各样的解决方案都很棒(不仅仅是goto ..)谢谢!
while (foo==true) // loop1
{
do
{
for(int i=0; i<someNumber ; i++) // loop3
{
if( soo==1)
{
<CONTINUE_TO_LOOP1>
}
else if( soo==2 )
{
<CONTINUE_TO_LOOP2>
}
else if( soo==3 )
{
<CONTINUE_TO_LOOP3>
}
}
} while (moo==true) //loop2
}
答案 0 :(得分:1)
CONTINUE_TO_LOOP3 simple:continue
CONTINUE_TO_LOOP2 easy:break
CONTINUE_TO_LOOP1这是有趣的:
goto
moo = false ;
break ;
答案 1 :(得分:1)
可能你可以做这项工作。
while (foo==true) // loop1
{
do
{
for(int i=0; i<someNumber ; i++) // loop3
{
if( soo==1)
{
break;//<CONTINUE_TO_LOOP1>
}
else if( soo==2 )
{
break;//<CONTINUE_TO_LOOP2>
}
else if( soo==3 )
{
continue;//<CONTINUE_TO_LOOP3>
}
}
if( soo==1)
{
break;//<CONTINUE_TO_LOOP1>
}
else if( soo==2 )
{
continue;//<CONTINUE_TO_LOOP2>
}
} while (moo==true) //loop2
if( soo==1)
{
continue;//<CONTINUE_TO_LOOP1>
}
}
答案 2 :(得分:1)
进行一些重组,没有转到:
bool loop3()
{
for (int i=0; i < someNumber ; i++) {
if(soo == 1) {
return false;
} else if(soo == 2) {
return true;
} else if(soo == 3) {
continue;
}
}
return true;
}
循环变为:
while (foo == true) // loop1
{
do
{
if (loop3() == false) {
break;
}
} while (moo == true) //loop2
}
答案 3 :(得分:1)
我提倡无条件分支来表达标签。其他解决方案将花费额外的条件分支和可能的状态变量,灵活性会降低,并且可读性会低得多。