# include <stdio.h>
int main ()
{
int x,y,z;
for ( x=1;x<=9;x++)
{
for (y=1;y<=9;y++)
{
for (z=1;z<=9;z++)
if (532==(x+y)*100+(z+y)*10+2*z)
;
}
}
printf("x=%d,y=%d,z=%d\n",x,y,z);
return 0
}
break只能跳出最近的一个循环
这种情况我一般设置标志变量, 在每个循环末判断一下标志变量, 再决定是否跳出循环, 也可以用goto
int x,y,z,flag=0; //flag为标志变量for( x=1;x<=9;x++)
{
for(y=1;y<=9;y++)
{
for(z=1;z<=9;z++)
{
if (532==(x+y)*100+(z+y)*10+2*z)
{
flag=1;
break;
}
}
......//第二个for中的其它代码
if(flag==1)
{
break;//跳出第二个for
}
}
......//第一个for中的其它代码
if(flag==1)
{
break;//跳出第一个for
}
}
printf("x=%d,y=%d,z=%d\n",x,y,z);
return 0;
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-11-13
# include <stdio.h>
int main ()
{
int x,y,z,flag = 0;
for ( x=1;!flag && x<=9;x++)
{
for (y=1; !flag && y<=9;y++)
{
for (z=1;z<=9;z++)
if (532==(x+y)*100+(z+y)*10+2*z){flag = 1; break;}
}
}
printf("x=%d,y=%d,z=%d\n",x,y,z);
return 0
}
int main ()
{
int x,y,z,flag = 0;
for ( x=1;!flag && x<=9;x++)
{
for (y=1; !flag && y<=9;y++)
{
for (z=1;z<=9;z++)
if (532==(x+y)*100+(z+y)*10+2*z){flag = 1; break;}
}
}
printf("x=%d,y=%d,z=%d\n",x,y,z);
return 0
}
第2个回答 2015-11-13
break只能跳出最近的一个循环,如果想要跳出多层循环可以用 goto语句,或者加个变量什么的在外出循环时判断下,一层一层的break;