MST

星途 面试题库

面试题:Objective-C中switch语句与枚举类型的联合使用

定义一个枚举类型表示一周的七天(Monday到Sunday)。使用switch语句编写一个函数,该函数接受一个枚举值作为参数,根据不同的枚举值返回对应的中文描述(例如:输入Monday,返回“星期一”)。并且要求在switch语句中合理处理default情况,同时考虑如何优化代码结构以提高可读性和可维护性。
35.9万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试

以下是使用C++ 实现的代码:

#include <iostream>
#include <string>

// 定义枚举类型表示一周的七天
enum class Weekday {
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
};

// 根据枚举值返回对应的中文描述
std::string getWeekdayDescription(Weekday day) {
    switch (day) {
    case Weekday::Monday:
        return "星期一";
    case Weekday::Tuesday:
        return "星期二";
    case Weekday::Wednesday:
        return "星期三";
    case Weekday::Thursday:
        return "星期四";
    case Weekday::Friday:
        return "星期五";
    case Weekday::Saturday:
        return "星期六";
    case Weekday::Sunday:
        return "星期日";
    default:
        return "未知的工作日";
    }
}

优化建议:

  1. 代码结构:将每个case分支单独成行,这样更清晰易读。
  2. 可维护性:如果后续需要修改某个工作日的中文描述,直接修改对应的case分支即可,并且default分支处理了未知情况,增强了程序的健壮性。

你可以这样调用该函数:

int main() {
    Weekday day = Weekday::Monday;
    std::cout << getWeekdayDescription(day) << std::endl;
    return 0;
}

上述代码首先定义了一个枚举类型Weekday表示一周的七天,然后定义了一个函数getWeekdayDescription,它接受一个Weekday枚举值作为参数,通过switch语句返回对应的中文描述,并在default分支处理了异常情况。在main函数中进行了简单的调用测试。

如果是Java语言,代码如下:

public class WeekdayEnum {
    // 定义枚举类型表示一周的七天
    enum Weekday {
        Monday,
        Tuesday,
        Wednesday,
        Thursday,
        Friday,
        Saturday,
        Sunday
    }

    // 根据枚举值返回对应的中文描述
    static String getWeekdayDescription(Weekday day) {
        switch (day) {
        case Monday:
            return "星期一";
        case Tuesday:
            return "星期二";
        case Wednesday:
            return "星期三";
        case Thursday:
            return "星期四";
        case Friday:
            return "星期五";
        case Saturday:
            return "星期六";
        case Sunday:
            return "星期日";
        default:
            return "未知的工作日";
        }
    }

    public static void main(String[] args) {
        Weekday day = Weekday.Monday;
        System.out.println(getWeekdayDescription(day));
    }
}

优化思路与C++ 类似,将每个case分支清晰地展示,便于理解和维护,default分支处理意外情况保证程序的健壮性。在main方法中进行简单调用测试。