老师您好,为什么i=i+j在for循环括号里面和外面,输出的结果不一样?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class ForDemo { public static void main(String[] args) { System.out.println( "i=i+j在for循环括号外面" ); for ( int i= 0 ,j= 1 ;j< 5 ;j+= 3 ) { i=i+j; System.out.println( "i=" +i+ ",j=" +j); } System.out.println( "i=i+j在for循环括号里面" ); for ( int i= 0 ,j= 1 ;j< 5 ;j+= 3 ,i=i+j) { System.out.println( "i=" +i+ ",j=" +j); } } } |
输出结果:
i=i+j在for循环括号外面
i=1,j=1
i=5,j=4
i=i+j在for循环括号里面
i=0,j=1
i=4,j=4
26
收起
正在回答 回答被采纳积分+1
2回答
飞越罗格镇
2020-02-02 02:48:15
完善一下提问:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public class ForDemo { public static void main(String[] args) { System.out.println( "情况1:i=i+j在for循环括号外面,后显示输出" ); for ( int i= 0 ,j= 1 ;j< 5 ;j+= 3 ) { i=i+j; System.out.println( "i=" +i+ ",j=" +j); } System.out.println( "情况2:i=i+j在for循环括号外面,先显示输出" ); for ( int i= 0 ,j= 1 ;j< 5 ;j+= 3 ) { System.out.println( "i=" +i+ ",j=" +j); i=i+j; } System.out.println( "情况3:i=i+j在for循环括号里面,i=i+j在后" ); for ( int i= 0 ,j= 1 ;j< 5 ;j+= 3 ,i=i+j) { System.out.println( "i=" +i+ ",j=" +j); } System.out.println( "情况4:i=i+j在for循环括号里面,i=i+j在前" ); for ( int i= 0 ,j= 1 ;j< 5 ;i=i+j,j+= 3 ) { System.out.println( "i=" +i+ ",j=" +j); } } } |
输出结果:
1 2 3 4 5 6 7 8 9 10 11 12 | 情况 1 :i=i+j在 for 循环括号外面,后显示输出 i= 1 ,j= 1 i= 5 ,j= 4 情况 2 :i=i+j在 for 循环括号外面,先显示输出 i= 0 ,j= 1 i= 1 ,j= 4 情况 3 :i=i+j在 for 循环括号里面,i=i+j在后 i= 0 ,j= 1 i= 4 ,j= 4 情况 4 :i=i+j在 for 循环括号里面,i=i+j在前 i= 0 ,j= 1 i= 1 ,j= 4 |
我可以理解不一样的原因是语句执行顺序,但是如果循环体内语句先执行的话,结果应该像“情况2”或“情况4”这样,“情况3”的结果是怎么计算出来的,还有“情况3”和“情况4”的结果为什么不一样,希望老师帮助解答一下,谢谢~
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧