java - 如何将代码更改为 switch 语句?

标签 java if-statement switch-statement

编辑:这是浇头的代码。我不确定在选择多个配料的情况下如何打印名称。

    public double getToppingCost()
    {

        double toppingCost = 0.0;


        if (creamCheese.isSelected())
            toppingCost += CREAM_CHEESE;
        if (butter.isSelected())
            toppingCost += BUTTER;
        if (peachJelly.isSelected())
            toppingCost += PEACH_JELLY;
        if (blueberryJam.isSelected())
            toppingCost += BLUEBERRY_JAM;
        if (nutella.isSelected())
            toppingCost += NUTELLA;


        return toppingCost;
    }

最佳答案

您不能直接将其更改为 switch 语句。 Switch 检查单个变量,并根据该单个变量的值提供单独的 case 分支,如果没有条件匹配,则提供可能的默认分支。

就您的情况而言,您的逻辑取决于多个变量的状态,而不是单个变量的状态。

您可以将其强制转换为开关语义,例如通过定义一个新变量并根据whiteBagel.isSelected()和wheatBagel.isSelected()设置其值,然后根据该新变量编写一个开关。但是,这只会增加复杂性并降低代码的可读性。

更新

您编辑问题的方式,这更不匹配 switch 语句。

关于java - 如何将代码更改为 switch 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30018311/

相关文章:

SQL Server 案例陈述

C++:循环菜单切换

c# - 不同版本解析文件不同

java - 如何使用改进的 Java 8 迭代迭代和处理映射键/值

javascript - if 语句不起作用

javascript - 无论如何简化 javascript if else

java - 在这个简单的例子中替代 if 语句

java - 计算文件中特定字符串的出现次数

java - JSP 和 mysql 抛出 java.lang.classNotFoundException :com. mysql.jdbc.driver

java - 需要文件覆盖/读取建议