标题:一道二级C的题
只看楼主
nova2201
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-7-14
 问题点数:0 回复次数:5 
一道二级C的题

main()
{
int a=1,b;

for (b=1;b<=10;b++)
{
if (a>=8) break;
if (a%2==1){a+=5;continue;}
a-=3;
}
printf("%d\n",b);

}

运行结果是4
可是我做出来是5
哪位可以给我解释一下吗?谢谢了

2007-09-13 11:26
marmot
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-9-13
得分:0 
b=1 -> a=1 -> a+5=6
b=2 -> a=6 -> a-3=3
b=3 -> a=3 -> a+5=8
b=4 break
"continue" tiao chu ben ci xun huan ,kai shi xia yi ci xun huan !

[此贴子已经被作者于2007-9-13 11:51:42编辑过]


2007-09-13 11:51
l0l45like
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-9-13
得分:0 
main()
{
int a=1,b;

for (b=1;b<=10;b++)
{
if (a>=8) break;
if (a%2==1){a+=5;continue;}
a-=3;
}
printf("%d\n",b);

}
b=1时a=1,a%2==1,所以a+=5,a=6;
b=2,时a=6,a%2!=1,所以a-=3,a=3;
b=3,时a=3,a%2==1,所以a+=5,a=8;
b=4,a=8,满足a>=8,所以break.
所以b=4
2007-09-13 12:28
LIUJIANCHAO
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-9-13
得分:0 

但是contiue嵌套了啊 为什么不执行下面的a-=3呢 ?

2007-09-13 14:13
lylovenyt174
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-9-11
得分:0 
能看懂一点,继续努力

2007-09-13 14:19
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
得分:0 
continue一般用于跳过当前的循环,即循环内的continue后面的语句不执行,从页执行下一次循环!

在不断的拼搏与进取中,定能创造一片天地!
2007-09-13 16:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-169597-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.157815 second(s), 10 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved