我要创建一个显示完整收据的程序(加上包含的所有项目。)但是,当选择了两个相同的项目时,输出为: 4组合价格 5组合价格
而不是: 9组合价格
是否可以合并两个相同的开关盒?我试过了一个柜台,但它仍然没有用。我不知道还有什么其他逻辑可以支持。
template: '<div>Hello, World!</div>'
答案 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