老师您好,为什么i=i+j在for循环括号里面和外面,输出的结果不一样?
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
完善一下提问:
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: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积分~
来为老师/同学的回答评分吧
0 星