我的开关语句在C++中不起作用
My switch statement is not working in C++
我应该得到一周中的一天。 0 应该是星期一,6 应该是星期日。我不知道是运行时错误还是什么。我已经尝试了我能想到的一切。
#include <iostream>
using namespace std;
string getDayOfWeek(int dayNum){
string dayName;
switch (dayNum){
case 0:
dayName = "Sunday";
break;
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
case 3:
dayName = "Wednesday";
break;
case 4:
dayName = "Thursday";
break;
case 5:
dayName = "Friday";
break;
case 6:
dayName = "Saturday";
break;
default:
dayName = "Invalid Day Number!";
}
}
int main()
{
cout << getDayOfWeek(1);
return 0;
}
>你的函数std::string getDayOfWeek(int dayNum)
需要return
一个std::string
。
您可以在switch
语句中执行此操作:
std::string getDayOfWeek(int dayNum){
switch (dayNum){
case 0:
return "Sunday";
case 1:
return "Monday";
case 2:
return "Tuesday";
case 3:
return "Wednesday";
case 4:
return "Thursday";
case 5:
return "Friday";
case 6:
return "Saturday";
default:
return "Invalid Day Number!";
}
}
我认为您想在上面给出的示例中打印Monday
,但是getDayOfWeek()
函数中没有return
语句。请添加return dayName;
,然后重试。
您缺少非void
函数的return
值。这是未定义的行为。此外,如果您希望0
问题措辞所述Monday
,则索引不正确。
为什么不简单地使用
#include <algorithm> // for std::min
#include <string> // for std::string
const std::string& getDayOfWeek(unsigned dayNum){
static std::string data[] = {
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday",
"Invalid Day Number!"
};
return data[std::min(dayNum, 7u)];
}
注意 (i( 返回的引用永远不会悬空,因为static
数组在程序的生命周期内有效,以及 (ii( 隐式转换为unsigned
类型只允许在一个边上进行错误处理?
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- C++为什么尽管我调用了void函数,它却不起作用
- 为什么在保护模式下继承升级不起作用
- 循环在计数器中不起作用
- 在其他文件中创建类时在 c++ 项目中不起作用
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- 为什么二进制搜索在我的测试中不起作用
- 我的代码中有错误吗?使用BGI图形的C++代码对我不起作用
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 带有指定长度字符* 参数的 std::regex_search 在 VS2017 中不起作用?
- Bjarne Stroustrup Book - std_lib_facilities.h - 不起作用(未知类型名称)
- 为什么简单的算术减法在"if"条件下不起作用?
- 为什么Stroustup书中的has_f不起作用
- 你能检查一下为什么在这个代码中从链接列表中删除项目不起作用吗
- 嵌套While循环不起作用(C++问题)
- C++Matching Brackets 2解决方案不起作用
- 为什么这段代码不起作用,我该如何解决?
- 我正在开发服务器,ip作为参数传递不起作用