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
一个 if
。 break
应用于最接近的可以 break
ed 的语句,因此
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
。
更多信息,您可以查看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;
}
}
我正在努力理解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
一个 if
。 break
应用于最接近的可以 break
ed 的语句,因此
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
。
更多信息,您可以查看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;
}
}