你能在交换机的一个case语句中进行两次比较吗?

时间:2013-10-01 01:21:43

标签: java switch-statement

我只是想知道我是否可以在switch语句中为一个案例测试两个字符串。例如:

     switch (month){
        case "Jan": ...

     }

这是一个常规的switch语句,但有没有办法实现比较两个字符串的方法,如:

    switch (month){
       case "Jan" || "January": ....
    }

我想知道是否有办法实现这种代码方法,我可以测试Jan OR January。

2 个答案:

答案 0 :(得分:5)

不直接。而是让执行流经case s

switch (month){
    case "Jan":
    case "January": 
        ...
}

如果month等于"Jan,则会遇到这种情况并流入"January"案例。

答案 1 :(得分:2)

看起来你并不真正了解Sotirios的答案。这是一个较长的例子:

switch (month) {
    case "Jan":
    case "January":
        System.out.println("It's January!");
        // Do whatever else
        break;
    case "Feb": case "February": // They can even go on the same line
        System.out.println("It's February!");
        // Do whatever else
        break;
    ...
}

除了你必须重复case关键字之外,这与你的例子的“代码空间”几乎完全相同。