理解代码中断并标记Java

时间:2017-10-20 16:33:19

标签: java label break

您好我是Java新手,我自学,所以我(也许)有一个问题。理解这段代码我需要你的帮助

public static void main(String[] args) {

    int x, y;

for(x = 0; x < 5; x++) 
stop2:  {   
    for(y = 0; y < 5; y++) {
        if(y == 2) break stop2;
        System.out.println("Varaiables x and y: " + x + " " + y);

我不明白为什么当我运行代码时我得到了:

0 0

0 1

1 0

1 1

2 0

2 1

3 0

3 1

4 0

4 1

为什么第二行以x = 0开头,而第三行为x = 1? 提前谢谢您的时间。 :d

2 个答案:

答案 0 :(得分:0)

代码快照包含2个用于循环的嵌套:outer和inner。 对于外部 for 循环的每个值,循环的整个内部将按嵌套执行。

内部 for 循环标记为“stop2”。

从x = 0,y = 0开始,打印出来。 此后,y根据循环的内部递增;它打印x = 0,y = 1。

当y进一步递增,即y = 2时,break语句将控件移出内部 for 循环(跳过打印的位置),控件来到外部 for 循环,其中x递增为1。

现在重复与x = 0相同的序列,同样继续打印。

答案 1 :(得分:0)

因为在这里:

if(y == 2) break stop2;

你的代码退出第二个循环(y == 2)并进入第一个循环(x ++)。