c语言如何跳出多层循环

c语言如何跳出多层循环,第1张

1、break语句退出循环时,它将退出离它最近的那层循环,无法退出多个循环。比如下面的代码,定义一个两维数组,不希望输出第2行。
#include<stdioh>
int main()
{
int a[3][3] = { {1,2,3}, //第一行
{4,5,6}, //第二行
{7,8,9} //第三行
};
for (int i=0; i!=3; ++i) {
for (int j=0; j!=3; ++j)
{
if (a[i][j] == 4) break; //进入第二行时break跳出,只跳出离它最近的for循环
printf("%d\n", a[i][j]);
}
}
return 0;
}
2、要退出多重循环,可以使用goto语句 。
#include <stdioh>
int main()
{
for (; ; ) {
while (1)
{
goto end;
}
}
end:
printf("跳出轮回!\n");
return 0;
}

只要最外层的for循环里面的条件不满足,自己就跳出来了
比如 int m=4
for(int i=1;i<m;i++)
{
for(int j=2;j<4;j++)
{
。。。。。。。。
}
}
当最外层的for循环里面的i自增到4,4<4,这是不对的,循环就结束了,就跳出来了啊

可以在每个循环处加个标志位nFlag,当需要跳出的时候判断一下它就可以了
比如最里面的一个循环为真时,令Flag = 1;
而在外面的循环就可以判断一下Flag就行了,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10548033.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存