基础语法测试第11题

基础语法测试第11题

原题:

执行语句for(int i=1;i++<4;);后变量i的值为()

答案是5

但是,一共执行三次循环

第一次:i=1,i++=2<4; 输出i =2;

第二次:i =2. i++=3<4;输出i=3;

第三次:i=3, i++=4. 输出i =4;

循环结束

所以i 的值应该是4呀????

为什么是5呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
lijikai1937 2017-08-05 10:04:43

因为他最终还是会去验证一次自己是不是符合条件啊,i=3的时候是符合条件的啊,然后输出i=4,然后再去验证4<4,不符合条件,循环终止。
循环有三个条件,初始值,自身变化,还有就是结束条件;
每次循环结束都会去验证条件是否成立,
就像你说的:
第一次:i=1,i++=2<4; 输出i =2;
第二次:i =2. i++=3<4;输出i=3;
第三次:i=3, i++=4. 输出i =4;
你看着i现在等于4了然后知道循环终止了,你怎么判断的?你是不是去验证i++<4;了?但是验证完之后呢?
i是不是要自增1?变成5.
所以还有
第四次:i=4,4<4,条件不成立,i++,i=5,输出i=5;
还有就是i++<4的意思是先进行比较运算,然后再进行自加1,
所以:
第一次:i=1,1<4; i增加1,i =2;(条件成立)
第二次:i =2,2<4; i增加1,i=3;(条件成立)
第三次:i=3, 3<4,i增加1,i =4;(条件成立)
第四次:i=4,4<4,i增加1,i=5,这一次终止循环,自增是在循环之前进行的,所以不受循环是否终止的影响。
我是这么理解的不知道对不对。。。参考一下。

  • 提问者 慕仙7138414 #1
    可是我用eclipse跑了一遍,输出也是4啊
    2017-08-07 10:06:32
  • lijikai1937 回复 提问者 慕仙7138414 #2
    那就是4啊,以你的为准,我只是说一下我的。
    2017-08-07 10:34:56
  • Tender10 回复 提问者 慕仙7138414 #3
    1、当i=1时,i++<4成立,i=2; 2、当i=2时,i++<4成立,i=3; 3、当i=3时,i++<4成立,i=4; 4、当i=4时,i++<4不成立,i=5; 5、因此循环结束之后,i的值为5。
    2017-08-07 12:13:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师