我正在尝试使用我制作的程序来告诉您您的十二生肖是什么,之前我只是通过 if 语句运行扫描仪输入以确定给定的出生月份和出生日期的标志。现在我的导师挑战我使用枚举并在一年中的几个月之间切换。我的问题在概念上我很困惑如何将这两个概念结合在一起
到目前为止,这是我的代码,但我真的只是在黑暗中拍摄
import java.util.Scanner;
enum Month {
January,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
}
class MyStarSign3 {
Month month;
public EnumTest(Month month) {
this.month = month;
}
public void monthBorn() {
switch (month) {
case January:
case February:
case March:
case April:
case May:
case June:
case July:
case August:
case September:
case October:
case November:
case December:
default:
}
}
public static void main(String[] args) {
Scanner monthInput = new Scanner(System.in);
String birthMonth = monthInput.nextLine();
}
}
您可以在
valueOf
类型上使用enum
方法将String
转换为相应的枚举。
switch (Month.valueOf(birthMonth)) {
case January -> System.out.println("January"); // or do something else...
// etc...
}
如果用户输入了无效的月份,您可能还想捕捉
IllegalArgumentException
。