论坛: 编程破解 标题: 为什么break不起作用呢? 复制本贴地址    
作者: BBL [bbl]    论坛用户   登录
main()
{
int a,b,c,d,e,sum;
for(a=1;a<32;a=a+2)
for(b=1;b<32;b=b+2)
for(c=1;c<32;c=c+2)
for(d=1;d<32;d=d+2)
for(e=1;e<32;e=e+2)
{
sum=a+b+c+d+e;
if(sum==15)
{
printf("%d-%d-%d-%d-%d\n",a,b,c,d,e);
break;
}
}
}
为什么break不起作用呢..我是想找出32内有哪五个数相加是等于15的,但我只须找到一组就终止循环不再找了...但为什么加了break找到一组还是不会结束循环,还是会把全部都找出来呢....请各位帮小弟看下....

地主 发表时间: 05-09-23 22:22

回复: kert_t8 [kert_t8]   论坛用户   登录
你的break只break了一层循环

B1层 发表时间: 05-09-24 08:04

回复: BBL [bbl]   论坛用户   登录
天哪...我昨天层层break但还是显示全部...今看了楼上的兄弟试了下,真的行了...我真晕呀....谢谢你哦

B2层 发表时间: 05-09-24 21:29

回复: xiaoshi [xiaoshi]   论坛用户   登录
其实你只要把{} 对起了,问题也就自己看到了。
以前老师说过多遍了,自己就是不怎么注意,后来感觉是个道理。

B3层 发表时间: 05-09-25 18:02

回复: BBL [bbl]   论坛用户   登录
谢谢...谢谢楼上的...

B4层 发表时间: 05-09-25 20:59

回复: 286 [unique]   版主   登录
main()
{
int a,b,c,d,e,sum;
for(a=1;a<32;a=a+2)
for(b=1;b<32;b=b+2)
for(c=1;c<32;c=c+2)
for(d=1;d<32;d=d+2)
for(e=1;e<32;e=e+2)
{
sum=a+b+c+d+e;
if(sum==15)
{
printf("%d-%d-%d-%d-%d\n",a,b,c,d,e);
a=b=c=d=e=32;
}
}
}


B5层 发表时间: 05-09-26 09:10

回复: lida1818 [lida1818]   论坛用户   登录
该用goto时为什么不用?

B6层 发表时间: 05-09-27 23:46

回复: 286 [unique]   版主   登录
使用goto容易使看的人思维发生混乱,也不乱于模块化开发。
还有就是更多的时候,你往往不知道goto到哪里(比如两个人分别分开连续的两部分时)。

B7层 发表时间: 05-09-28 09:38

回复: xiaoshi [xiaoshi]   论坛用户   登录
goto 来goto去的,最后来联你自己都不知道在那了,虽然比指针理解起来简单。

B8层 发表时间: 05-09-30 20:20

回复: lida1818 [lida1818]   论坛用户   登录
CPU是给客户的用,不是给程序员用的。

个人认为象楼主这种跳出多重循环个案用goto是最好的选择。


B9层 发表时间: 05-09-30 20:40

回复: bailove [bailove]   论坛用户   登录
这个多层的for  这算法  可以仍掉了

B10层 发表时间: 05-10-05 22:54

回复: BBL [bbl]   论坛用户   登录
呵呵呵...谢谢大家的帮忙...请问你们说用goto,那改写你们写一段用goto来给俺学习学习好不好....

B11层 发表时间: 05-10-08 23:43

回复: windflower [windflower]   论坛用户   登录
用一个exit(0)跳出所有的循环,问题不就解决了?

B12层 发表时间: 05-10-09 19:07

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号