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

标签 java

如果我们已经有了 if-else if-else 语句,您能告诉我为什么在 java 中还需要 switch-case 语句吗?

switch-case 语句有性能优势吗?

最佳答案

Switch 语句简化了 if else block 的长列表,从而提高了可读性。另外,它们还允许出现失败的情况。

考虑以下因素:

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");
}

现在让我们尝试将其写成 if-elses

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...

你明白了。尤其是开关的亮点在于蜜蜂苍蝇。那里的逻辑很难简洁地捕获,特别是如果它们共享的不仅仅是打印语句。

关于java - 如果我们已经有了 if-else if-else 语句,为什么在 java 中还需要 switch-case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44165392/

相关文章:

java - Android Studio Gradle 预构建步骤

java - Spring数据存储库不工作

java - 如何在布局中的 View 之间传输数据

javascript - Android - 如何从标签的第一个字母开始将我的按钮标记为小型大写字母?

java - 设置 png 的 "window level"(从 DICOM 转换而来)

Java runtime.getruntime() 没有输出

java - ServletContext 属性为空

java - 在 Java 中使用 mysql 查询连接两个数据库?

java - 如何将 java.util.List 复制到另一个 java.util.List

java - 将 Eclipse 中的多个文件夹分别导入一个项目