在switch语句中,在default情况下使用continue关键字。

8
如果我有这个东西:
do {
    int x = scannerScan.nextInt();

    switch(x)
    {
        case 1:
            System.out.println("Stuff");
            break;
        case 2:
            System.out.println("Pink cows are fluffy and can fly.");
        default:
            continue;
    }
}
while(true);

如果进入默认情况会发生什么?我尝试在互联网和Stackoverflow上找到相关的内容,但没有找到任何关于Java语言中与默认情况下的continue有关的内容。
3个回答

11

continue语句用于跳过当前执行的forwhiledo-while循环,未标记形式跳过最内层循环体的剩余部分并且计算控制循环的布尔表达式。[...]

在您的代码中,循环while(true);将继续执行,该语句不会对switch代码块产生影响。


有道理。我当时有点匆忙,没想出一个好的布尔条件。但是,是的,这很有道理。 - Ungeheuer
顺便说一句,当你引用别处的内容时应该注明出处。 - Radiodef
@Radiodef 感谢你的提示,引用的来源在这里 - MaxZoom

8
switch语句中,continue语句并不特殊。它会跳转到循环条件(循环体的末尾),就像在循环内但在switch外部一样。
在这个特定的代码片段中,它实际上什么也没做。

6

比较 break 语句:

break 语句会尝试将控制转移到最近的包围 switch, while, do, 或者 for 的语句...

continue 语句 相比:

continue 语句会尝试将控制转移到最近的包围 while, do, 或者 for 的语句...

因此,continue 关联到 do...while 循环,并且:

…立即结束当前迭代并开始一个新的迭代。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接