编辑:这是浇头的代码。如果选择多个打顶,我不确定如何打印名称。

    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检查单个变量,并基于该单个变量的值提供单独的大小写分支,如果没有条件匹配,则提供可能的默认分支。

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

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

更新

您编辑问题的方式,这与switch语句的匹配甚至更少。

10-06 01:48