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

来源:3-5 如何提交作业

Michael_2020

2020-01-18 12:57:42

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

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

http://img.mukewang.com/climg/5e22903f09e01ebe09220186.jpg

http://img.mukewang.com/climg/5e22903f09f99e5d06320398.jpg


写回答

5回答

好帮手慕小尤

2020-01-19

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

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

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

0

Michael_2020

提问者

2020-01-19

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

http://img.mukewang.com/climg/5e23e28509f04b9c10880564.jpg

0

好帮手慕小尤

2020-01-19

同学你好,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。

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

0
hichael_2020
h 感谢老师答疑。这个里面我有些混淆了,for(int i=1;i++<4;);这里的i++<4不适用用优先运算级对吗?要先用i的值进行比较大小,无论true还是false,i的值都会+1。是这样子的吗?
h020-01-19
共1条回复

Michael_2020

提问者

2020-01-18

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

http://img.mukewang.com/climg/5e2302c9096face710580474.jpg

0

好帮手慕小尤

2020-01-18

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

http://img.mukewang.com/climg/5e229e7309960a8b05240592.jpg

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

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

0
hichael_2020
h 老师好,我贴了疑问,请答疑,谢谢。
h020-01-18
共1条回复

0 学习 · 11489 问题

查看课程