首页 > 解决方案 > switch 语句中的中断是否会终止 for 循环?

问题描述

我试图理解返回、中断和继续。我知道 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,然后中断,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; 
                    }

标签: javaloopsfor-loopswitch-statementbreak

解决方案


你可以break一个switch. 你不能break一个if. break应用于可以break编辑的最接近的语句,所以

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编辑的语句是for, while, do...while, switch.

有关更多信息,您可以查看规范


推荐阅读