面试题答案
一键面试以下是使用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 "未知的工作日";
}
}
优化建议:
- 代码结构:将每个case分支单独成行,这样更清晰易读。
- 可维护性:如果后续需要修改某个工作日的中文描述,直接修改对应的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
方法中进行简单调用测试。