Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的switch语句没有编译_Java_Switch Statement - Fatal编程技术网

Java 我的switch语句没有编译

Java 我的switch语句没有编译,java,switch-statement,Java,Switch Statement,这不是编译!我想我做的每件事都是对的。我在这里看不到错误: class A { public static void main(String args[]) { int x = 10; switch (X) { case 2: System.out.println("2"); default: System.out.println("De

这不是编译!我想我做的每件事都是对的。我在这里看不到错误:

class A {

    public static void main(String args[]) {

        int x = 10;
        switch (X) {

            case 2:
                System.out.println("2");

            default:
                System.out.println("Def.");

            case 3:
                System.out.println("3");

            case 4:
                System.out.println("4");

        }
    }
}

声明中有
x
,开关中有
x
。Java区分大小写。
X
X


switch
查看
案例
,如果
案例
满足条件,它将执行其后面的
语句
,直到找到
中断
开关结束
,并且这是强制性的,从
编程和逻辑角度看
,您将
默认值
放在所有案例的末尾。

尝试更改
x
的案例,并添加一些中断语句

class A {

  public static void main(String args[]) {

    int x = 10;
    switch (x) {

        case 2:
            System.out.println("2");
            break;
        case 3:
            System.out.println("3");
            break;
        case 4:
            System.out.println("4");
            break;
        default:
            System.out.println("Def.");
    }
  }
}
  • 用于
    开关的变量与您声明的变量不同。将外壳固定在
    x

  • default
    应该是
    switch
    语句中的最后一个选项。这样做是一种很好的做法,因为它通常是您要执行的最后一个分支

  • 您没有在任何
    案例
    语句中放置
    中断
    。简单地说-如果您没有在
    案例中放置
    中断
    ,则会执行后续的
    案例
    。您需要这种突然的返回来帮助控制打印出来的内容

    上述情况的存在,使人们可以通过案例来解决问题;如果有两个值应位于同一分支,则可以将它们表示为:

    case 2:
    case 3:
        System.out.println("Number is prime and less than 5");
        break;
    
    在任何案例陈述之后,立即在其后面放置一个
    break
    。否则你的指纹看起来就不对了


  • 声明的变量称为
    x
    ,但在switch语句中,引用的是
    x
    。所以一定要先改变这一点。第二,你需要把
    break语句

    switch (x) {
        case 4:
            // sysout
            break;
        case 3:
            // sysout
            break;
    }
    

    ,最后,你也应该考虑在最后设置默认值。然而,这只是一种惯例,使代码更易于阅读。

    x
    x
    不同。Java区分大小写。还向我们显示错误
    switch
    语句是一个有趣的小东西,如果您更正了您的类型(
    x
    而不是
    x
    ),那么它将打印出
    Def
    3
    4
    ,因为
    switch
    语句将在第一次匹配
    case
    之后运行每一个case,它可以让你做一些真正有趣的事情这里有很多问题。我说的不仅仅是打字错误或
    default
    的位置。default不是这样的。“一切都做对了”。不,请注意,将
    default
    大小写放在末尾是一种很好的做法,这样做不是强制性的。将
    default
    放在末尾的原因是无稽之谈。它可以去任何地方。对不起,我弄错了。它确实可以无处不在。