如果我们已经有if-else if-else语句,为什么我们需要java中的switch-case语句

Why do we need switch-case statements in java if we already have if-else if-else statements

本问题已经有最佳答案,请猛点这里访问。

请让我知道为什么我们需要Java中的转换case语句,如果我们已经有if if or if语句的话。

switch case语句有什么性能优势吗?


switch语句简化if-else块的长列表,提高可读性。此外,它们还允许翻箱倒柜。

考虑以下事项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
String str ="cat"
switch(str){

    case"cat":
        System.out.println("meow");
        break;
    case"dog":
        System.out.println("woof");
        break;
    case"horse":
    case"zebra": //fall through
        System.out.println("neigh");
        break;
    case"lion":
    case"tiger":
    case"bear":
        System.out.println("oh my!");
        break;
    case"bee":
        System.out.print("buzz");
    case"fly":
        System.out.println("buzz"); //fly will say"buzz" and bee will say"buzz buzz"
        break;
    default:
        System.out.println("animal noise");
}

现在让我们试着把它写得像Elses一样

1
2
3
4
5
6
7
8
9
10
String str ="cat"
if(str.equals("cat")){
   System.out.println("meow");
}
else if(str.equals("dog")){
   System.out.println("woof");
}
else if(str.equals("horse") || str.equals("zebra")){
   System.out.println("neigh");
} else if...

你明白了。尤其是在开关发光的情况下,beefly。这里的逻辑很难简明扼要地捕捉到,特别是如果它们共享的不仅仅是一个打印语句。