gpt4 book ai didi

java - 用 Java 编写许多 if 语句的更好方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:48:32 24 4
gpt4 key购买 nike

所以我有这个作业,我需要 build 一台自动售货机,我为每个产品(A1、A2、A3..)分配了一个坐标,当用户输入硬币值时,我必须计算他是否可以购买他选择的产品,如果是,计算变化,因为我还是编程新手,所以我现在已经得到了很多这样的陈述

if ("a1".equals(choice)) {
System.out.println("You chose SNICKERS!");
if (money < 50) {
System.out.println("This is not enough money to buy this product");
} else if (money >= 50) {
System.out.println(" Price = 50 Your change = " + (money - 50));
}
}

唯一改变的是坐标(a1、a2、a3、a4、b1、b2 等)和价格。执行此操作的更好方法是什么?

最佳答案

您可以使用更面向对象的方法。

创建一个名为 Product 的类:

class Product {
private String name;
private int price;

public String getName() { return name; }
public int getPrice() { return price; }

public Product(String name, int price) {
this.name = name;
this.price = price;
}
}

然后,创建一个 HashMap<String, Product>并将您所有的产品及其坐标添加到:

HashMap<String, Product> productMap = new HashMap<>();
productMap.put("A1", new Product("Snickers", 50));
productMap.put("A2", new Product("Something else", 40));
// do this for every coordinate...

现在,您可以使用此代码:

Product chosenProduct = productMap.get(choice);
System.out.println("You chose " + chosenProduct.getName() + "!");
if (money < chosenProduct.getPrice()) {
System.out.println("This is not enough money to buy this product");
} else {
System.out.println(" Price = " + chosenProduct.getPrice() + " Your change = " + (money - chosenProduct.getPrice()));
}

关于java - 用 Java 编写许多 if 语句的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47732466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com