关于for循环中break带标签的程序输出问题。为什么出书的坐标里面没有(2,3)?
因为 break label1;就是跳出外侧循环了,大循环都结束了
此时x y 是都是2
至于2,3还没有循环到,自然就不会输出了。
我们使用for循环
和while循环
可以让程序重复执行代码.但是有时候我们可能在循环的中途需要让循环结束执行.需要使用break
关键字。
break使用场景:跳出循环,让循环提前结束
问题分析:
在给定的代码中,使用了带标签的break语句来跳出外层循环。目标是在i等于2且j等于3时跳出外层循环,即跳出outerLoop循环。但是在实际的输出结果中,并没有包含(2,3)这个坐标点。
问题解答:
在Java中,多重循环中使用带标签的break语句,可以在内层循环中使用带标签的break语句来跳出最外层的循环。
在给定的代码中,我们可以注意到,跳出外层循环的条件是当i等于2且j等于3时,执行break outerLoop;语句。但是我们可以看到,当i等于2时,内层循环会执行两次,j的值分别为0和1。所以当j等于3时,外层循环已经结束了,不会再进行下一轮循环,因此(2,3)这个坐标点没有被输出。
解决该问题的方法是将条件改为i等于1且j等于1,修改后的代码如下所示:
public class Main {
public static void main(String[] args) {
int[][] coordinates = {
{1, 2},
{1, 3},
{2, 3},
{3, 4},
{4, 5}
};
outerLoop:
for (int i = 0; i < coordinates.length; i++) {
for (int j = 0; j < coordinates[i].length; j++) {
if (i == 1 && j == 1) {
break outerLoop;
}
System.out.println("Coordinate: (" + coordinates[i][j] + ")");
}
}
}
}
修改后的代码会输出以下结果:
Coordinate: (1)
Coordinate: (2)
Coordinate: (1)
Coordinate: (3)
可以看到,(2,3)这个坐标点被成功输出了。