黑马程序员技术交流社区
标题: for循环最后输出的是?求答案 [打印本页]
作者: zmttt 时间: 2015-12-5 22:14
标题: for循环最后输出的是?求答案
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
if (i == j) {
break;
}
System.out.println("i=" + i + ", j=" + j);
}
}
作者: zmttt 时间: 2015-12-5 22:20
求分析过程
作者: a54267490 时间: 2015-12-5 22:22
i=1 j=0
i=2 j=0
i=2 j=1
如果两个数相等,break就是跳出内循环
作者: a54267490 时间: 2015-12-5 22:36
首先 i=0 j=0时 i==j结果为true,执行break,直接跳出内循环,开始下一个外循环;
然后i=1 j=0时 i==j结果为false 执行打印语句i=1 j=0,内循环继续,i=1 j=1时,i==j结果为true,执行break跳出内循环,继续外循环;
最后i=2 j=0和i=2 j=1时,i==j结果都为false,都会执行打印语句,当i=2 j=2时,i==j结果为true,执行break;跳出循环
所以最后结果只有三个:
i=1 j=0
i=2 j=0
i=2 j=1
作者: yuanjun52306 时间: 2015-12-5 22:51
楼上正解,break是跳出循环(当前循环体),continue是到循环尾(当前循环体)
作者: 胖小子 时间: 2015-12-6 11:39
本帖最后由 胖小子 于 2015-12-6 11:46 编辑
for (int i=0; i<3; i++) { //外层 有 3次循环
for (int j=0; j<3; j++) { //内循环3次 //也就是说 一共9次
if (i == j) { //每次i j 进行判断
break;
}
System.out.println("i=" + i + ", j=" + j);
}
}第一次: i==j break; 不输出i = 0 ; j =0;
第二次: i!= j i = 1 ; j =0;输出 i = 1 ;j==0;
第三次: i==j i = 1 ;j==1; 不输出 i = 1;j==1;
第三次: i !=j i =2 ;j =0; 输出 i = 2 ; j = 0;
第四次: i != j i=2;j=1; 输出 i=2;j=1;
第五次 : i==j i=2;j=2; 不输出 i =2;j=2;
作者: 胖小子 时间: 2015-12-6 11:47
其实 也就是i != j 的时候 就输出 ,等于的话 就break了 跳出内循环了
作者: 耿帅东 时间: 2015-12-6 12:40
从上往下一步步分析就好了
作者: Kalsifa 时间: 2015-12-6 20:24
i=1 j=0
i=2 j=0
i=2 j=1
敲了一遍,我也跟着学习了
作者: 龙sama 时间: 2015-12-6 20:39
break会直接跳出内循环,直接外循环下一个值
i=0 j=0直接跳出到i=1
i=1 j=0 输出
i=1 j=1直接跳出到i=2
i=2 j=0 和i=2 j=1 都输出
i=2 j=2跳出然后整个结束
作者: 嘿嘿嘿嘿嘿 时间: 2015-12-6 21:01
break是跳出内循环,懂这个就不难了,谢谢楼上各位,学习了!
作者: 费费 时间: 2015-12-6 21:13
break;continue;return
作者: 隔壁老猫 时间: 2015-12-6 21:36
你这不是扯呢,人家要分析过程
作者: 再续啸傲 时间: 2015-12-6 21:48
get and look look
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |