开关语法差异

Syntax on Switch Discrepancies

根据 java 文档,switch 语句示例可能如下所示:

public class SwitchDemo {
    public static void main(String[] args) {

        int month = 8;
        String monthString;
        switch (month) {
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            default: monthString = "Invalid month";
                     break;
        }
        System.out.println(monthString);
    }
}

我写了一个测试程序:

导入java.util.Scanner;

public class Practice2 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int x = in.nextInt();
        switch (x)
        {
        case 1: x = 4;
            System.out.println("Hey");
            break;
        case 2: x = 5;
            System.out.println("You");
            break;
        default:
            System.out.println("as;ldfj'");
        }
    }
}

如果我 select 1 它选择情况 1。如果我 select 2 选择情况 2。它实际上不会测试 x = 4 和 x = 5。我是如果有任何区别,请使用 Eclipse。我做错了什么?

x = 4 不是 switch 语句中的 case,它是一个赋值。

如果您想要 x == 4 的案例,您将需要在 switch 语句中使用 case 4: