到目前为止,我已经为虚拟自动售货机编写了这段代码:
public class VirtualVender {
public static void main(String[] args){
int MILK_CHOCOLATE = 01;
int DARK_CHOCOLATE = 02;
int LIGHT_CHOCOLATE = 03;
int COOKIE_CHOCOLATE = 04;
int SELECTION;
System.out.println("********************");
System.out.println("Vending Machine");
System.out.println("Enter Your Selection");
Scanner input = new Scanner(System.in);
SELECTION = input.nextInt();
System.out.println("********************");
}
}
所以根据我的理解,用户输入现在应该存储在SELECTION中,但如果我输入01,如何让SELECTION调出MILK_CHOCOLATE?如果你需要一个更深入的问题,只需回复,我会尝试更好地解释我的问题
谢谢你的帮助!
答案 0 :(得分:1)
有很多不同的方法可以做到这一点。这是一个:
if (SELECTION == MILK_CHOCOLATE) {
System.out.println("Please enjoy your milk chocolate.");
}
顺便说一句,惯例是使用ALL_UPPERCASE
作为常量,即在程序的整个生命周期中保持不变的值。因此,虽然MILK_CHOCOLATE
是常量,但用户的选择却不是。您应该将该变量命名为selection
。 Java编译器并不关心,但代码将更容易让其他程序员阅读。
答案 1 :(得分:1)
声明定义您的风格和相关整数值的an enum:
public enum Flavour {
MILK_CHOCOLATE(1),
DARK_CHOCOLATE(2),
LIGHT_CHOCOLATE(3),
COOKIE_CHOCOLATE(4);
private final int value;
private Flavour(int value) {
this.value = value;
}
public static Flavour fromValue(int value) {
for (Flavour f : values()) {
if (f.value == value) {
return f;
}
}
return null;
}
// Add a toString() method if you want to better control
// how the flavour names are printed
}
然后使用您的枚举验证用户输入值:
System.out.println("********************");
System.out.println("Vending Machine");
System.out.println("Enter Your Selection");
// Use try-with-resources to close Scanner:
try (Scanner input = new Scanner(System.in)) {
int selection = input.nextInt();
Flavour flavour = Flavour.fromValue(selection);
if (flavour != null) {
System.out.println(flavour);
} else {
System.out.println("Bad selection!");
}
System.out.println("********************");
}
答案 2 :(得分:0)
用例man。
String output;
switch (selection) {
case 1: output = "milk chocolate";
break;
case 2: output = "dark chocolate";
break;
..
default: output = "Not a correct value."
}
我认为它们类似于自动售货机问题或电路一般最好。