switch 语句中的 break 会终止 for 循环吗?

Does break in a switch-statement terminates a for-loop?

我正在努力理解return,中断并继续。 我知道 break 会停止(内部)for 循环。例如:

for (int i = 1; i <= 3; i++) {
            // inner loop
            for (int j = 1; j <= 3; j++) {
                if (i == 2 && j == 2) {
                    // using break statement inside the inner loop
                    break;
                }
                System.out.println(i + " " + j);
            }
        }

我知道外循环会继续。

我不明白的是这里:

for (int i = 0; i < 3; i++) {
            String line = null;
            switch (a) { 
                case 0:
                    line = "Hello";
                    break;
                case 1:
                    line = "How are you?";
                    break;
                case 2:
                    line = "What are you doing?";
                    break;

所以它转到情况 0 然后 break 并且 for 循环继续,为什么?我认为它会打破循环,因为它没有嵌套。 还是因为 switch 语句 - 它不同于 if 语句?

在这种情况下,它将终止整个 while 循环...我看不出有什么不同。

while(winner == false){

                input = menuInput.nextInt();

                try {
                    if(input == 0 || input >= 9){
                        System.out.println("Ungültige Nummer, versuche nochmal!");
                        break; 
                    }

你可以break一个switch。你不能 break 一个 ifbreak 应用于最接近的可以 breaked 的语句,因此

for (int j = 1; j <= 3; j++) {
    if (i == 2 && j == 2) {
        // using break statement inside the inner loop
         break;
    }
    System.out.println(i + " " + j);
}

这里的break指的是for.

在这里:

for (int i = 0; i < 3; i++) {
    String line = null;
    switch (a) { 
        case 0:
            line = "Hello";
            break;

指的是switch.

可以 break 编辑的语句有 forwhiledo...whileswitch

更多信息,您可以查看the spec

break适用于最内层的可以被破坏的东西(没有标签)。在这种情况下,它是 switch - 因为默认的 switch 行为失败了。首先,你的代码。改变,

for (int i = 0; i < 3; i++) {
    String line = null;
    switch (a) { 
        case 0:
            line = "Hello";
            break;
        case 1:
            line = "How are you?";
            break;
        case 2:
            line = "What are you doing?";
            break;

可以改为

loop: for (int i = 0; i < 3; i++) {
    String line = null;
    switch (a) { 
        case 0:
            line = "Hello";
            break loop;
        case 1:
            line = "How are you?";
            break loop;
        case 2:
            line = "What are you doing?";
            break loop;

现在,第二个行为是失败。这可能看起来像,

switch (a) {
case 0: case 2: case 4: case 6: case 8:
    System.out.println("even < 10");
    break;
case 1: case 3: case 5: case 7: case 9:
    System.out.println("odd < 10");
    break;
}

在switch中,statement break表示结束switch语句。看看下跌槽example.

在循环中,语句break表示结束循环。

使用 switch 语句示例后停止循环:

for (int i = 0; i < 3; i++) {
   Boolean shouldBreak = false;

   String line = null;
   switch (a) {
      case 0:
         line = "Hello";
         shouldBreak = true;
         break;
      case 1:
         line = "How are you?";
         shouldBreak = true;
         break;
   }

   if (shouldBreak){
      break;
   }
}