有人能告诉我break语句和continue语句的区别吗?


当前回答

Break完全离开循环,并在循环之后执行语句。 而Continue则离开当前迭代并执行循环中的下一个值。

这段代码解释了一切:

public static void main(String[] args) {
    for(int i=0;i<10;i++)
    {
        if (i==4)
        {
            break;
        }
        System.out.print(i+"\t");

    }
    System.out.println();
    for(int i=0;i<10;i++)
    {

        if (i==4)
        {
            continue;
        }
        System.out.print(i+"\t");
    }
}

输出:

0   1   2   3   
0   1   2   3   5   6   7   8   9

其他回答

break语句存在于当前循环控制结构中,并跳转到它后面,而continue语句也退出,但跳转回循环条件。

Break完全退出循环。Continue跳过Continue语句后面的语句并继续循环。

继续声明停止滴定,开始下一次滴定 例:

System.out.println("continue when i is 2:");
    for (int i = 1; i <= 3; i++) {
        if (i == 2) {
            System.out.print("[continue]");
            continue;
        }
        System.out.print("[i:" + i + "]");
    }

和Break语句停止循环或退出循环

Break完全离开循环,并在循环之后执行语句。 而Continue则离开当前迭代并执行循环中的下一个值。

这段代码解释了一切:

public static void main(String[] args) {
    for(int i=0;i<10;i++)
    {
        if (i==4)
        {
            break;
        }
        System.out.print(i+"\t");

    }
    System.out.println();
    for(int i=0;i<10;i++)
    {

        if (i==4)
        {
            continue;
        }
        System.out.print(i+"\t");
    }
}

输出:

0   1   2   3   
0   1   2   3   5   6   7   8   9

Break语句

有时有必要在循环完全遍历所有步长值之前退出循环。例如,遍历一个数字列表,直到找到一个满足特定条件的数字。或者循环文件中的字符流,直到读取某个字符。

在下面的例子中,我们使用一个简单的for循环来打印从0到9的值:

for(int i=0; i<10; i++) {
  System.out.println(i);
}

输出:

0
1
2
3
4
5
6
7
8
9

现在,如果我们在i==4时添加break语句,代码将在i= 4时跳出循环。可以使用break语句来中断for循环、while循环和do-while循环。break语句只会跳出当前循环。为了从嵌套的内循环中跳出外部循环,需要在break语句中使用标签。

for(int i=0; i<10; i++) {
  System.out.println(i);
  if(i==4) {
    break;
  }
}

输出:

0
1
2
3
4

继续声明

Java的continue语句跳过循环的当前迭代,直接进入下一个迭代。在for循环中调用continue语句后,循环执行将执行step值并在继续下一次迭代之前计算布尔条件。在下面的例子中,我们在循环中打印从0到9的所有值,但我们跳过打印4。

for(int i=0; i<10; i++) {
  if(i==4) {
    continue;
  }
  System.out.println(i);
}

输出:

0
1
2
3
5 <---- SKIPPED OVER 4 and continued with next loop iteration
6
7
8
9

循环标签中断语句 可以在嵌套循环中使用标签,方法是指定在跳出内部循环后继续执行的位置。通常,break语句只会跳出最内层的循环,因此当您想跳出外层循环时,可以使用标签来完成这一点,本质上是做类似于goto语句的事情。

下面的示例使用了3个循环,它们彼此嵌套。由于没有办法从最外层的循环中完全跳出最外层的循环,我们可以使用标签“outer1”来完成这一点,并在break语句旁边指定标签。

outer1:
for(int i=0; i<5; i++) {
  for(int j=0; j<4; j++) {
    for(int k=0; k<2; k++) {
      System.out.println("[" + i + "][" + j + "][" + k + "]");
      if(j == 3) {
        break outer1;
      }
    }
  }
}

输出:

[0][0][0]
[0][0][1]
[0][1][0]
[0][1][1]
[0][2][0]
[0][2][1]
[0][3][0]

注意显示的最后一行是“0[0]”,也就是j == 3的位置,这就是我们调用“break outer1;”来跳出最外层循环的位置。

循环标签-继续语句

还可以使用带有continue关键字的标签从特定的点继续循环。以前面的例子为例,只改变一行来指定continue outer1;而不是打破1;将导致循环从outer1标签开始继续循环,而不是跳出循环。注意每一次如何继续outer1;调用时,代码从外部循环开始,在循环索引I加1之后继续执行。

outer1:
for(int i=0; i<5; i++) {
  for(int j=0; j<4; j++) {
    for(int k=0; k<2; k++) {
      System.out.println("[" + i + "][" + j + "][" + k + "]");
      if(j == 3) {
        continue outer1;
    }
  }
}

[0][0][0]
[0][0][1]
[0][1][0]
[0][1][1]
[0][2][0]
[0][2][1]
[0][3][0] <---- CONTINUE WITH LABEL CALLED HERE
[1][0][0] <---- CONTINUES FROM NEXT ITERATION OF OUTER LOOP
[1][0][1]
[1][1][0]
[1][1][1]
[1][2][0]
[1][2][1]
[1][3][0] <---- CONTINUE WITH LABEL CALLED HERE
[2][0][0] <---- CONTINUES FROM NEXT ITERATION OF OUTER LOOP
[2][0][1]
[2][1][0]
[2][1][1]
[2][2][0]
[2][2][1]
[2][3][0] <---- CONTINUE WITH LABEL CALLED HERE
[3][0][0] <---- CONTINUES FROM NEXT ITERATION OF OUTER LOOP
[3][0][1]
[3][1][0]
[3][1][1]
[3][2][0]
[3][2][1]
[3][3][0] <---- CONTINUE WITH LABEL CALLED HERE
[4][0][0] <---- CONTINUES FROM NEXT ITERATION OF OUTER LOOP
[4][0][1]
[4][1][0]
[4][1][1]
[4][2][0]
[4][2][1]
[4][3][0]

来源:循环在Java -终极指南