如何将此代码更改为 switch 语句?
How can I change code this to a 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 分支,如果 none 个条件匹配,则提供可能的默认分支。
在您的情况下,您的逻辑取决于多个变量的状态,而不是单个变量的状态。
您可以将其强制转换为 switch 语义,例如通过定义一个新变量并根据 whiteBagel.isSelected() 和 wheatBagel.isSelected() 设置其值,然后根据该新变量编写一个开关。但是,这只会增加代码的复杂性并降低代码的可读性。
更新
您编辑问题的方式,这更不符合 switch 语句。
编辑:这是浇头的代码。我不确定在选择了多个浇头的情况下如何打印名称。
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 分支,如果 none 个条件匹配,则提供可能的默认分支。
在您的情况下,您的逻辑取决于多个变量的状态,而不是单个变量的状态。
您可以将其强制转换为 switch 语义,例如通过定义一个新变量并根据 whiteBagel.isSelected() 和 wheatBagel.isSelected() 设置其值,然后根据该新变量编写一个开关。但是,这只会增加代码的复杂性并降低代码的可读性。
更新
您编辑问题的方式,这更不符合 switch 语句。