3

用逗号编写 switch case 语句是否被认为是不好的做法,例如:

switch(name)
{
case 'a', 'A' :
break;
}

而不是

switch(name)
{
case 'a':
case 'A':
break;
}

只是好奇,因为我的代码似乎运行良好,但我想养成使用正确/最被接受的方式的习惯。

4

3 回答 3

5

这不是坏习惯。事实上,它被认为是简洁和省时的。

看看您拥有的以下代码

switch(name){
    case 'a', 'A' :
        break;
}

不使用逗号的等价物是:

switch(name){
    case 'a':
        break;
    case 'A':
        break;
}

相当于if-else

if(name=='a'){
    //Do something
}else if(name=='A'){
    //Do something
}

其中,第一个示例只输入了 36 个字符。后者用了49个字符,最后一个用了37个字符。

道德?使用逗号肯定比使用两种情况和一个结果更简洁和省时。甚至if语句也会更简洁。

于 2020-12-02T03:41:25.913 回答
3

CheckStyle 是 Java 风格的事实标准,没有对此进行检查。

做最容易阅读的事情。

我会说,尽管在任何给定的 switch 语句中只使用一种风格或另一种风格。

于 2020-12-02T03:48:50.710 回答
-3

来自 JavaDocs: https ://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

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

        int month = 2;
        int year = 2000;
        int numDays = 0;

        switch (month) {
            case 1: case 3: case 5:
            case 7: case 8: case 10:
            case 12:
                numDays = 31;
                break;
            case 4: case 6:
            case 9: case 11:
                numDays = 30;
                break;
            case 2:
                if (((year % 4 == 0) && 
                     !(year % 100 == 0))
                     || (year % 400 == 0))
                    numDays = 29;
                else
                    numDays = 28;
                break;
            default:
                System.out.println("Invalid month.");
                break;
        }
        System.out.println("Number of Days = "
                           + numDays);
    }
}
于 2020-12-02T03:43:05.160 回答