break语句在java中做了什么?

时间:2013-06-27 05:06:09

标签: java break

有谁知道group_skip做了什么?

也许这是一个基本的编程,但是我已经使用Java编程了几年而且今天才发现它。

group_skip: do {
    event = stepToNextEvent(FormController.STEP_OVER_GROUP);
    switch (event) {
        case FormEntryController.EVENT_QUESTION:
        case FormEntryController.EVENT_END_OF_FORM:
            break group_skip;
    }
} while (event != FormEntryController.EVENT_END_OF_FORM);

谢谢!

4 个答案:

答案 0 :(得分:15)

这是labelled loop,当执行break group_skip;语句时,它会跳出do while循环,标记为group_skip

boolean isTrue = true;
    outer: for (int i = 0; i < 5; i++) {
        while (isTrue) {
            System.out.println("Hello");
            break outer;
        } // end of inner while
        System.out.println("Outer loop"); // does not print
    } // end of outer loop
   System.out.println("Good Bye");

此输出

Hello
Good Bye

你可以在这里明白这个概念。

  • 标记为for的循环名为outer,内部有while循环
  • 当执行内部for循环时,它会遇到break outer;语句
  • outer for loop有一个System.out.println"Outer loop"声明,但不会打印出来。
  • 这是因为break outer导致控件直接跳出标记的for循环

现在这个continue语句的例子

outer: for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 5; j++) {
            System.out.println("Hello");
            continue outer;
        } // end of inner loop
        System.out.println("outer"); // this won't print
    } // end of outer loop
    System.out.println("Good bye");

打印

Hello
Hello
Hello
Hello
Hello
Good bye
  • 此处有一个标记为for的循环和一个内部for循环
  • 内部for循环打印Hello并继续outer循环。
  • 因此,跳过内部for循环下面的语句,继续执行outer循环。
  • outer for循环结束时,会打印Good Bye

希望这能使一切变得清晰。

答案 1 :(得分:8)

group_skip是一个标签。标签允许您在嵌套时打破或继续特定的循环。

Here's what Oracle has to say on the subject.

答案 2 :(得分:5)

当我们使用简单的break语句时,我们只能将控制从最内层循环转移到最外层(如果我们有循环嵌套)。例如

for(int i=0; i < 10; i++){
    if(i==5){
      break;
    }
}
statement x;

只会将控件转移到语句x 。但是如果你在嵌套循环中使用它,那么它将以不同的方式工作。

for(int i=0; i < 10; i++){
 for(int j=0; j < 10; j++)
    if(i==5){
      break;
    }
 }
statement y;
}
statement x;

在这种情况下,它会将控件发送到语句y 。如果要将控件从最内层循环发送到最外层循环或循环外部,那么您需要带有标签的这样的break语句。只是从你自己做,你会看到有趣的输出.. :)

答案 3 :(得分:0)

group_skip是用于休息之类的标签。 (还可以转到其他语言并跳转)

在java中,它特别用于从标签标识的代码块中断,在while循环中表现得像break语句,除了从标记的代码块中断。

Here是关于该主题的更多讨论