C/C++ 跳出多重循环方法

c语言的break语句只能跳出离它最近的一层循环,但是我们有时候需要跳出多层循环,以下有几种跳出多重循环的方法:

1. 使用goto

for (int i = 0; i < MAX1; i++)
{
    for (int j = 0; j < MAX2; j++)
    {
        if (condition)
        {
            symbol = 1;
            goto outloop;
        }
    }
}
outloop:
//somecode

2. 写成函数 return

 1 for ()
 2 {
 3     for ()
 4     {
 5         for ()
 6         {
 7             if(condition)
 8             {
 9                 symbol = 1;
10                 return;
11             }
12         }
13     }
14 }

3. 直接修改外层循环条件

 1 for(int i = 0; i < MAX1; i++)
 2 {
 3     for(int j = 0; j < MAX2; j++)
 4     {
 5         if(condition1)
 6         {
 7             symbol = 1;
 8             i = MAX1;
 9             break;
10         }
11     }
12 }

4. 在外层循环设置判断条件

内层循环判断满足条件修改标志后 外层循环进行判断:

 1 for(;symbol != 1 && condition1;)
 2 {
 3     for(;symbol != 1 && condition2;)
 4     {
 5         for(;symbol != 1 && condition3;)
 6         {
 7             if(condition)
 8             {
 9                 symbol = 1;
10             }
11         }
12     }
13 }

5. 在大循环后面判断标志加入break

 1 for(;condition1;)
 2 {
 3     for(;condition2;)
 4     {
 5         for(;condition3;)
 6         {
 7             if(condition)
 8             {
 9                 symbol = 1;
10             }
11         }
12         if (symbol == 1){
13             break;
14         }
15     }
16     if(symbol == 1){
17         break;
18     }
19 }
原文地址:https://www.cnblogs.com/ybqjymy/p/14355495.html