【发布时间】:2021-12-31 21:24:21
【问题描述】:
private static String[][] menuList = {{"Soda","10"},{"Coke","20"},{"Water","5"}};
public Drinks(String menu, String size) {
setMenu(menu);
setSize(size);
}
public void setMenu(String menu) {
this.menu = menu;
for (int i = 0; i < menuList.length; i++) {
if (this.menu.equalsIgnoreCase(menuList[i][0])){
price = Double.valueOf(menuList[i][1]);
}else{price = 0.0;}
}
}
然后我创建用于测试的对象
我无法获取 menuList[][] 中前两行的价格
但我仍然可以得到最后一个
Drinks d = new Drinks("water","L");
Drinks e = new Drinks("coke","L");
Drinks f = new Drinks("soda","L");
System.out.println(d);
System.out.println(e);
System.out.println(f);
输出是
Drink[menu = water , size = L , price = 5.00]
Drink[menu = coke , size = L , price = 0.00]
Drink[menu = soda , size = L , price = 0.00]
我只想知道为什么?我该如何解决这个问题?
【问题讨论】:
-
你的
price字段是静态的吗? -
不,这只是 // 私人双倍价格;
-
找到匹配项后,您需要跳出循环。否则它将继续循环并再次将
price设置为0.0。 -
谢谢,它的作品。我需要再复习一下基本的java。