题目
定义枚举类型 Weekday 表示星期一至星期日,从标准输入读入一个整数(1~7),输出对应星期的英文全称。若输入不在 1~7 范围内提示错误。
输入格式:一行输入一个整数 k。
输出格式:输出对应的英文星期名称(如 Monday);无效数字输出 error。
数据范围与约定:k 为整数。
思路与算法
1. 枚举类型 enum 的语义
枚举类型定义一组命名的整型常量,默认从 0 开始自增。可以显式指定首个元素为 1:enum Weekday { MON = 1, TUE, WED, THU, FRI, SAT, SUN };。
2. 提高代码自解释性
使用有意义的枚举标识符代替生硬的魔法数字,配合 switch 语句使状态流转更具可读性。
完整程序
import java.util.Scanner;
enum Weekday {
MONDAY(1, "Monday"),
TUESDAY(2, "Tuesday"),
WEDNESDAY(3, "Wednesday"),
THURSDAY(4, "Thursday"),
FRIDAY(5, "Friday"),
SATURDAY(6, "Saturday"),
SUNDAY(7, "Sunday");
private final int code;
private final String name;
Weekday(int code, String name) {
this.code = code;
this.name = name;
}
public static String getNameByCode(int code) {
for (Weekday w : values()) {
if (w.code == code) {
return w.name;
}
}
return "error";
}
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int k = sc.nextInt();
System.out.println(Weekday.getNameByCode(k));
}
}运行示例
输入:
1输出:
Monday