| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 888 人关注过本帖
标题:答案为什么这样?
只看楼主 加入收藏
kenvay
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-3-13
收藏
 问题点数:0 回复次数:18 
答案为什么这样?

有以下程序

main()

{ int i,n=0;

for( i=2;i<5;i++)

{do

{ if(i%3) continue;

n++;

}while(!i);

n++;

}

printf("n=%d\n",n);

}

程序执行后输出结果是 n=4。
答案:

当i=2时,i%3为真,继续执行n++;此时n=1,!i为假,结束while循环,执行n++,此时n为2。

当i=3时,i%3=0,跳出循环。

当i=4时,i%3=1为真,继续执行n++,此时n为3,!i为假,结束while循环,继续往下执行n++,此时n为4。

故本题答案为D。

问一下当i=2时,执行了continue后的效果是继续执行该次循环后的语句吗?不是结束该次循环,进行下次循环吗?

搜索更多相关主题的帖子: continue 
2006-03-31 16:02
sunnvya
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1094
专家分:0
注 册:2005-11-23
收藏
得分:0 
continue后的语句是继续执行该次循环,并没有结束,只不过是你的!i让它结束了

http://www. 第二站>>>提供源码下载
2006-03-31 16:05
︷順⑦?zì繎
Rank: 1
等 级:新手上路
帖 子:255
专家分:0
注 册:2006-3-28
收藏
得分:0 
continue 是跳出本次循环
当执行continue后就跳到while(!i)去进行下一次循环判断了.

2006-03-31 16:13
kenvay
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-3-13
收藏
得分:0 
如果是For语句就好懂,Continue就是中止本次循环,而不去执行本次循环的后续语句,并且继续下次循环!
而Do While语句里面的Continue作用后,为什么还能执行下面的语句(n++),不是直接转入判断条件(!i),结束循环了吗?
2006-03-31 16:13
︷順⑦?zì繎
Rank: 1
等 级:新手上路
帖 子:255
专家分:0
注 册:2006-3-28
收藏
得分:0 
以下是引用kenvay在2006-3-31 16:13:00的发言:
如果是For语句就好懂,Continue就是中止本次循环,而不去执行本次循环的后续语句,并且继续下次循环!
而Do While语句里面的Continue作用后,为什么还能执行下面的语句(n++),不是直接转入判断条件(!i),结束循环了吗?

他执行是do while(!i)循环外的哪个n++


2006-03-31 16:15
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

continue 是忽略了本循环的后续部分
那第一次执行完 n=1 不执行do() 中的n++;
第二次执行完 n=3 两个n++都执行
第三次同第一次 n最后为4



叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-31 16:17
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

其实就一句话 continue; 是从continue出现的位置直接跳出本次循环,开始下一次循环
而不是中断循环,像break;一样


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-31 16:20
kenvay
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-3-13
收藏
得分:0 

不是呀!
明显是 当i=2时,i%3为真,继续执行n++;此时n=1 这个(n++)是Do While 内部的!
不然就不会,当!i为假,结束while循环,执行n++,此时n为2。n初值为0呀!
下来才有i=3。。。

2006-03-31 16:31
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

你要不听,那我也没办法。你这样自己可以编一本书了,全按你的理解写
再写一个编译器,你就出名了
你要不相信,自己改改程序,多加些输出语句自己看看


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-31 16:36
风之语录
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2006-3-15
收藏
得分:0 
我用VC++试过了,过程是这样的
i=2,n=1;
i=3,n=3;
i=4,n=4;

所以,continue是使while继续的原因,当i=3时while中的n++才有用

2006-03-31 16:38
快速回复:答案为什么这样?
数据加载中...
 
   



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

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