break后j自动初始化吗?第二次循环的时候j为什么不等于3?

break后j自动初始化吗?第二次循环的时候j为什么不等于3?

        int k=0;
    	for(int i=1;i<5;i++) {
    		for(int j=1;j<5;j++) {
    			k=i+j;
    			if(j==3)break;
    		}
    	}System.out.println("k="+k);

break后j自动初始化吗?第二次以及以后的循环j为什么不等于3?

正在回答

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

1回答

j可以等于3啊,

这是k=i+j的过程

2=1+1

3=1+2

4=1+3

3=2+1

4=2+2

5=2+3

4=3+1

5=3+2

6=3+3

5=4+1

6=4+2

7=4+3

所以最后k=7,没错啊,如果能解答您的疑惑,望采纳,谢谢,祝学习愉快


  • 万能小企鹅 提问者 #1
    首先感谢解答。我的意思是,如果第一轮在j==3时break跳出循环,那第二轮循环就不应该执行j++而是因为j=3而直接跳出。虽然在第四轮循环之后答案是7,但是j明显是从1重新开始执行j++的。
    2018-04-15 22:30:22
  • 万能小企鹅 提问者 #2
    简单点问就是break语句之后为什么不写 j=1;
    2018-04-15 22:35:23
  • 久诚 回复 提问者 万能小企鹅 #3
    因为 for(int i=1;i<5;i++) { for(int j=1;j<5;j++) { 当内for循环执行完毕跳出来后,到外面的for循环再到内for循环,会重新执行int j=1
    2018-04-15 23:25:20
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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