c语言的break语句只能跳出离它最近的一层循环,但是我们有时候需要跳出多层循环,以下有几种跳出多重循环的方法:
1. 使用goto
for (int i = ; i < MAX1; i++)
{
for (int j = ; j < MAX2; j++)
{
if (condition)
{
symbol = ;
goto outloop;
}
}
}
outloop:
//somecode
2. 写成函数 return
for ()
{
for ()
{
for ()
{
if(condition)
{
symbol = ;
return;
}
}
}
}
3. 直接修改外层循环条件
for(int i = ; i < MAX1; i++)
{
for(int j = ; j < MAX2; j++)
{
if(condition1)
{
symbol = ;
i = MAX1;
break;
}
}
}
4. 在外层循环设置判断条件
内层循环判断满足条件修改标志后 外层循环进行判断:
for(;symbol != && condition1;)
{
for(;symbol != && condition2;)
{
for(;symbol != && condition3;)
{
if(condition)
{
symbol = ;
}
}
}
}
5. 在大循环后面判断标志加入break
for(;condition1;)
{
for(;condition2;)
{
for(;condition3;)
{
if(condition)
{
symbol = ;
}
}
if (symbol == ){
break;
}
}
if(symbol == ){
break;
}
}
参考资料:
https://blog.csdn.net/u011475211/article/details/42041783