将多个开关变量组合成一个字符串

时间:2017-10-12 16:57:16

标签: java if-statement switch-statement

我要创建一个显示完整收据的程序(加上包含的所有项目。)但是,当选择了两个相同的项目时,输出为: 4组合价格 5组合价格

而不是: 9组合价格

是否可以合并两个相同的开关盒?我试过了一个柜台,但它仍然没有用。我不知道还有什么其他逻辑可以支持。

template: '<div>Hello, World!</div>'

1 个答案:

答案 0 :(得分:0)

导致此问题的具体行是: order=order.concat(quantity+"Main+Dessert\t\t\t"+"RM"+format.format(quantity*COMBO1)+"\n");

每当有新的COMBO进入时,它会附加到字符串而不是添加到COMBO成本(如果已存在)。

我能想到的一个可能的解决方法是将每个项目的状态存储在HashMap中。所以你的case语句看起来像这样:

Map<String, Integer> orderMap = new HashMap<>();
case 6:
  System.out.println("You've ordered: "+quantity+" Main+Dessert.\n");
  sum=sum+(quantity*COMBO1);
  orderMap.containsKey("Combo")
    ? orderMap.put("Combo", orderMap.get("Combo") + sum) // if the key already exists then we add to the sum otherwise we create a new entry.
    : orderpMap.put("Combo", sum);
  freeCoffee = freeCoffee + quantity;
  break;

然后您可以收集所有订单值并将其打印在收据中:

orderMap.entrySet().forEach(entry -> System.out.println(entry.getKey() + ": " + entry.getValue);

将打印如下内容:

Starter: 2
Combo: 9