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 }