从内层循环退出外层循环的方法
在我们写二层循环时,若满足某一条件想要退出外层循环的时候,如果只写break就只会退出内层循环,代码如下:
int main(){for(int i=1;i<4;i++){for(int j=0;j<3;j++){if(i==2 && j==2) {break; }printf("(%d,%d)\n",i,j);}} printf("end"); }

我们可以从结果看出当i == 2&&j == 2时,只是退出了当前的内层循环,并没有退出外层循环,所以没有打印(2,2),后面的(3,0)(3,1)(3,2)依然打印。
以下为处理方法:
使用goto语句,可以为外层循环后的语句打个标签,然后goto这个标签就可以了。
int main(){for(int i=1;i<3;i++){for(int j=0;j<3;j++){if(i==2 && j==2) {goto flag; }printf("(%d,%d)\n",i,j);}} flag: printf("end"); }

这时我们可以看出,当条件满足i == 2&&j == 2时,直接跳出外层循环到flag出,跳出后从flag标签处的语句开始执行。
方法二:可以为内层循环加一个判断条件。具体代码如下:
int main(){bool flag = true;for(int i=1;i<3;i++){if(flag){for(int j=0;j<3;j++){if(i==2 && j==2) {flag = false; }printf("(%d,%d)\n",i,j);} }else break;} printf("end"); }

我们可以看出,这种方法也起到了退出外层循环的作用。
本人新手,若有错误,请大佬斧正。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
