题目

定义枚举类型 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