break语句在java中做了什么?

Ren*_*ndy 6 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);
Run Code Online (Sandbox Code Playgroud)

谢谢!

Pra*_*kar 15

这是一个带标签的循环,当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");
Run Code Online (Sandbox Code Playgroud)

这输出

Hello
Good Bye
Run Code Online (Sandbox Code Playgroud)

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

  • 有一个标记的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");
Run Code Online (Sandbox Code Playgroud)

这打印

Hello
Hello
Hello
Hello
Hello
Good bye
Run Code Online (Sandbox Code Playgroud)
  • 这里有一个标记的for循环和一个内for循环
  • for循环打印Hello并继续outer循环.
  • 因此,for跳过内部循环下面的语句并outer继续执行循环.
  • outerfor循环结束时,Good Bye打印

希望这能让一切变得清晰.


Chr*_*ode 8

group_skip是一个标签.标签允许您在嵌套时断开或继续特定循环.

以下是Oracle就此主题所说的话.


May*_*ari 5

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

for(int i=0; i < 10; i++){
    if(i==5){
      break;
    }
}
statement x;
Run Code Online (Sandbox Code Playgroud)

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

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

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