java - 为什么我不能在 Java 的 switch 语句中使用 'continue'?

标签 java switch-statement continue

为什么是下面的代码:

class swi  
{
    public static void main(String[] args)  
    {  
        int a=98;
        switch(a)
        {
            default:{ System.out.println("default");continue;}
            case 'b':{ System.out.println(a); continue;}
            case 'a':{ System.out.println(a);}
        }
        System.out.println("Switch Completed");
    }
}

给出错误:

continue outside of loop

最佳答案

失败是 switch 语句的标准行为,因此,在 switch 语句中使用 continue 是没有意义的。 continue 语句仅用于 for/while/do..while 循环。

根据我对你的意图的理解,你可能想写:

System.out.println("default");
if ( (a == 'a') || (a == 'b') ){
    System.out.println(a);
}

我还建议您将默认条件放在最后。

编辑: 不能在 switch 语句中使用 continue 语句并不完全正确。一个(最好有标签的)continue 语句是完全有效的。例如:

public class Main {
public static void main(String[] args) {
    loop:
    for (int i=0; i<10; i++) {
        switch (i) {
        case 1:
        case 3:
        case 5:
        case 7:
        case 9:
            continue loop;
        }

        System.out.println(i);
    }
}
}

这将产生以下输出: 0 2个 4个 6个 8

关于java - 为什么我不能在 Java 的 switch 语句中使用 'continue'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2521721/

相关文章:

java - 正则表达式 if 语句与 switch 语句混合

while循环中的Javascript continue语句导致无限循环

java - 什么是 "continue"关键字,它在 Java 中是如何工作的?

java - 如何在代号一中将doneListener添加到TextArea

java - 如何以原子方式向 google appengine 的内存缓存添加新 key ?

c++ - 如何循环 switch 语句直到找到所需的数字?

python - Python 中替代开关的性能差异

c# - 为什么在 OOP(例如 Java、C#)中使用 break/continue 标签是一种不好的做法?

java - 如何创建现有类的新实例?

java - 检查所有复选框,当在 Android 中单击一个复选框时?