C语言 简单问题 这道题 当if语句成立时 该如何跳出嵌套的3个for循环呢(我知道用break,但不知道该放哪)
#include<stdio.h>intmain(){intx,y,z;for(x=1;x<=9;x++){for(y=1;y<=9;y++){for(z=1;z<=9;...
# 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
} 展开
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
} 展开
3个回答
展开全部
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;
展开全部
# 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
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
break只能跳出最近的一个循环,如果想要跳出多层循环可以用 goto语句,或者加个变量什么的在外出循环时判断下,一层一层的break;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询