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

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

运算符的优先级不是先  运算  再比较  最后 赋值 的吗?

i的值最后为什么是5呢,而不是4?

http://img1.sycdn.imooc.com//climg/5e22903f09e01ebe09220186.jpg

http://img1.sycdn.imooc.com//climg/5e22903f09f99e5d06320398.jpg


正在回答

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

5回答

同学你好,1. ++是存在优先运算级的,只是i++在下一次调用时进行加一

2. 这次的运行表是正确的。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

提问者 Michael_2020 2020-01-19 13:00:55

@好帮手慕小尤 这样是否是对了?

http://img1.sycdn.imooc.com//climg/5e23e28509f04b9c10880564.jpg

好帮手慕小尤 2020-01-19 10:10:25

同学你好,i++是在一个先使用后加1,即先使用i的值,后让i+1。也就是在下次调用i时,才会进行加1 。如下所示:

int i = 1;
System.out.println(i++); // 1
System.out.println(i);   // 2

所以循环会执行四次,如下所示:

    第一次  i= 1,1<4  true  则进入循环。

    第二次  i= 2,2<4  true  则进入循环。

    第三次  i= 3,3<4  true 则进入循环。

    第四次  i= 4,4<4  false 结束循环,输出i时则i为5。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 Michael_2020 #1
    感谢老师答疑。这个里面我有些混淆了,for(int i=1;i++<4;);这里的i++<4不适用用优先运算级对吗?要先用i的值进行比较大小,无论true还是false,i的值都会+1。是这样子的吗?
    2020-01-19 12:56:38
提问者 Michael_2020 2020-01-18 21:06:25

@好帮手慕小尤   老师,如果按优先顺序,下表的问题出在哪里?

http://img1.sycdn.imooc.com//climg/5e2302c9096face710580474.jpg

好帮手慕小尤 2020-01-18 14:00:06

同学你好,Java运算符的优先级,如下图所示

http://img1.sycdn.imooc.com//climg/5e229e7309960a8b05240592.jpg

i++<4,按照优先级会先执行i++然后执行大小比对,所以答案是5。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 Michael_2020 #1
    老师好,我贴了疑问,请答疑,谢谢。
    2020-01-18 21:04:50
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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