2个for循环如何用一个break跳出?

来源:百度知道 编辑:UC知道 时间:2024/06/27 06:55:01
假如
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(a[i][j]==0)
break;
能同时跳出2个for循环么???? 如果不能 那怎样才能满足条件跳出2个for循环?

可以用goto,虽然教科书上反对用goto,但是这种情况goto是最有效率,最简单的

for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(a[i][j]==0)
goto __EXITFOR;

__EXITFOR:
.... //跳出goto后的语句

for(i=0;i<3;i++)
{for(j=0;j<3;j++)
if(a[i][j]==0)
break;}

至于第一个提问 ,那就要看在什么情况了!涉及到一些上下句问题!

只是最里面的循环
如下例:

#include"stdio.h"
void main()
{
int i,j;
for(i=0;i<6;i++)
for(j=0;j<6;j++)
if(j==3)break;
printf("%d,%d\n",i,j);
}
输出为 6,3
如果是跳出两个循环则为0,3;
所以,只挑出最里面的

for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
if(a[i][j]==0)
break;
if(a[i][j]==0) break;
}
用两个if就行


if(a[i][j]==0)
break;
写在大循环中