老师您好,为什么i=i+j在for循环括号里面和外面,输出的结果不一样?

老师您好,为什么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

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

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

2回答
提问者 飞越罗格镇 2020-02-02 03:04:25

我懂了( ̄▽ ̄"),老师帮忙把问题关闭一下吧,不知道咋删除。

  • 好的同学,懂了就好,加油!祝学习愉快~
    2020-02-02 14:57:54
提问者 飞越罗格镇 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”的结果为什么不一样,希望老师帮助解答一下,谢谢~

  • 情况三:第一次循环时,因为j+=3,i=i+j是在输出之后再加减,所以第一次输出为i=0,j=1,输出后此时j已经为4,i为4,执行第二次循环输出i=4,j=4,之后第三次循环j=7,i=11不满足小于5,所以跳出循环。 情况4一样:第一次输出为i=0,j=1,此时循环内i=1,j=4;执行第二次时输出i=1,j=4,此时循环内i=5,j=7,在执行第三次不满足i<5,跳出循环。
    2020-02-06 13:40:24
  • 就和2 4一样这种加法是先输出在加减的
    2020-02-06 13:44:20
  • 提问者 飞越罗格镇 回复 慕容7248226 #3
    谢谢您回答,写问题的时候没考虑括号内语句也要按顺序执行,后面想明白了
    2020-02-06 13:44:58
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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