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
for (){ for () { for () { if(condition) { symbol = 1; return; } } }}
3. 直接修改外层循环条件
for(int i = 0; i < MAX1; i++){ for(int j = 0; j < MAX2; j++) { if(condition1) { symbol = 1; i = MAX1; break; } }}
4. 在外层循环设置判断条件
内层循环判断满足条件修改标志后 外层循环进行判断:
for(;symbol != 1 && condition1;){ for(;symbol != 1 && condition2;) { for(;symbol != 1 && condition3;) { if(condition) { symbol = 1; } } }}
5. 在大循环后面判断标志加入break
for(;condition1;){ for(;condition2;) { for(;condition3;) { if(condition) { symbol = 1; } } if (symbol == 1){ break; } } if(symbol == 1){ break; }}
参考资料:
https://blog.csdn.net/u011475211/article/details/42041783