c语言 while的循环

main(){
int n,m;
n=5;m=1;while(m<=n)
m*=2;
printf("%d\n",m);}为什么答案是8

while循环如下:
第一步:1<=5,m=1*2=2;
第二步:2<=5,m=2*2=4;
第三步:4<=5,m=4*2=8;
第四步:8>5,不小于n=5,因此,while循环结束。
最后得到m=8.
楼主有不明白的地方可以继续问哦。追问

循环完一次后要把值带到表达式中进行检验对么

追答

对的,循环完以后,m的值变了,所以要带到表达式中再去检验。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-26
m=1时,m<=n成立;执行m*=2;所以m=2;
m=2时,m<=n成立,执行m*=2;所以m=4;
m=4时,m<=n成立,执行m*=2,所以m=8;
m=8时,m<=n不成立,循环结束。
输出8.
第2个回答  2013-01-26
第一次m *= 2,此时 m = 2,m <=n 成立,然后在执行m *= 2,此时m = 4,m <= n同样成立,再执行m *= 2,此时m = 8,m <= n不成立,退出while循环,所以m = 8
第3个回答  2013-01-26
m值只变化了4次1,2,4,8,当m等于8时就不在循环了,不符合m<=n了,所以答案就是8了。while 循环是先判断,符合条件就执行循环语句,不符合就退出循环,执行循环外的语句。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网