for循环后边的if语句为什么不能跟break,求教一下高手!
#include<stdio.h>voidmain(){inta,b;for(a=0;a<10;a++)for(b=0;b<10;b++)if((30+a)*4356+(...
#include<stdio.h>
void main()
{
int a,b;
for(a=0;a<10;a++)
for(b=0;b<10;b++)
if((30+a)*4356+(b*10+8)*832==196360)break;
printf("a=%d,b=%d\n",a,b);
}
最后输出的竟然是a=10,b=10; 展开
void main()
{
int a,b;
for(a=0;a<10;a++)
for(b=0;b<10;b++)
if((30+a)*4356+(b*10+8)*832==196360)break;
printf("a=%d,b=%d\n",a,b);
}
最后输出的竟然是a=10,b=10; 展开
9个回答
展开全部
因为“if((30+a)*4356+(b*10+8)*832==196360)break;”中的break是跳出 for(b=0;b<10;b++)这个循环。而外循环for(a=0;a<10;a++)还是继续执行的。
我帮你改一下程序即可:
#include<stdio.h>
void main()
{
int a,b,c = 0;
for(a=0;a<10;a++)
{ for(b=0;b<10;b++)
{ if((30+a)*4356+(b*10+8)*832==196360)
{
c= 1;
break;
}
}
if (c == 1) break;
}
printf("a=%d,b=%d\n",a,b);
}
结果是 a= 4 b=5
我帮你改一下程序即可:
#include<stdio.h>
void main()
{
int a,b,c = 0;
for(a=0;a<10;a++)
{ for(b=0;b<10;b++)
{ if((30+a)*4356+(b*10+8)*832==196360)
{
c= 1;
break;
}
}
if (c == 1) break;
}
printf("a=%d,b=%d\n",a,b);
}
结果是 a= 4 b=5
展开全部
这个肯定输出是10,因为break只跳出了内部的循环,外面的循环没有跳出来。假如从内部的循环跳出来但a<10条件成立,程序又会进入内部的循环,只有当a=10,b=10,也就是说两个循环的条件都不成立了,程序就走到输出语句了,这时候输出的当然是10了。你在break的后面再加一个break,也就是这样
if((30+a)*4356+(b*10+8)*832==196360)break;
break;
原因是这个,但这个方法能不能行没有验证,你试试看,我没试。
if((30+a)*4356+(b*10+8)*832==196360)break;
break;
原因是这个,但这个方法能不能行没有验证,你试试看,我没试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
个变量,判断一下。
int flag=1;
for(表达式1;表达式2&&flag;表达式3) /*加一个变量*/
for(表达式4;表达式5;表达式6)
} /*break之前,将flag置0*/
语句二;
int flag=1;
for(表达式1;表达式2&&flag;表达式3) /*加一个变量*/
for(表达式4;表达式5;表达式6)
} /*break之前,将flag置0*/
语句二;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
break; —— 退出此次循环,执行下一次循环,你用break后,即使得到解,也会循环玩,a,b最后都为10
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应为你的表达式不对,方程无解,怎么会有值。。
#include<stdio.h>
void main()
{
int a,b;
for(a=0;a<1000;a++)
for(b=0;b<1000;b++)
if((30+a)*4356+(b*10+8)*832==196360) printf("a=%d,b=%d\n",a,b);
getchar();
}
#include<stdio.h>
void main()
{
int a,b;
for(a=0;a<1000;a++)
for(b=0;b<1000;b++)
if((30+a)*4356+(b*10+8)*832==196360) printf("a=%d,b=%d\n",a,b);
getchar();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询