我的返回语句有一个错误,我不知道要修复
I have an error with my return statements that I don't know to fix
在我正在制作的一款文本冒险游戏中,所有不同的地方都运行着我不同的功能。在我的餐厅、市场和供应商店里,我有一个数字为1-10的switch语句。1-9都有效,但10无效。所有这些方法都返回到一个名为TownCenter()
的方法,但在这3个方法中,当我返回时,您必须发送垃圾邮件才能使其工作。下面是一个代码示例:
void Diner(){
int answer;
cout << "Blah, blah. Type '0' to go back to town.n";
cin >> answer;
switch (answer){
case 0:
return;
break;
}
Diner()
}
每次键入0时,它都会再次转到Diner()
。如果你一次又一次地垃圾邮件0,它最终会起作用,但为什么它不一直起作用呢?
我认为代码没有任何错误,除了以下注意事项:
- 第10行
Diner()
后面缺少分号 break;
语句不是必需的,因为return;
在它之前使用
我不认为您打算在这里使用递归。我建议在人们处于不同位置时使用while循环。通过在案例陈述的末尾再次调用相同的位置以返回到相同的区域,您在调用堆栈中进行了更深的调用,需要更多的"出口"才能"离开"房间。
像下面这样的do while循环会很好地工作:
int answer;
do {
cout << "Blah, blah. Type '0' to go back to town.n";
cin >> answer;
switch (answer){
// other case statements
case 0:
break;
}
} while (answer != 0);
请注意,最后我不再调用Diner()
。让它处理同一个房间,直到通过循环而不是不必要的递归完成"离开"。
相关文章:
- 我不知道导致错误的原因 (C3074)
- 我正在尝试制作一个自平衡机器人,但编译时存在错误。我不知道如何解决它
- 函数抛出seg错误,我不知道为什么
- 尝试通过多个函数移动数组,但遇到了我不知道如何修复的错误
- 由于某种原因,我的代码中出现了 [json.exception.type_error.302]。我知道错误意味着什么,但我不知道哪里有故障
- "错误:在'.标记'之前出现预期的主表达式,我不知道为什么
- 我正在制作c ++代码,但发生错误我不知道为什么
- std::cout << glGetString(GL_RENDER) << std::endl;抛出错误但不GL_Renderer或GL_Verision,我不知道为什么?
- 语法检查器指出一些我不知道为什么的错误
- 编写蒙特卡洛集成程序,我不知道为什么我会收到某些错误
- C++代码出现分段错误,我不知道为什么
- 我不知道如何使用 boost,虽然我的老师确实提供了代码,但我遇到了一个错误
- 我同时使用了莱布尼茨和瓦利斯公式来估算π但输出数字错误,我不知道我哪里出错了
- 我的一堆函数出现"undefined reference"错误,我不知道为什么
- 错误 C2064 — 我不知道我做错了什么
- Mingw32-w64 GCC 4.9.2 正则表达式错误,或者我不知道C++
- 错误数组用作初始值设定项,我不知道错误
- 尝试对结构向量进行排序时,我在算法文件中收到 20 个错误。我不知道怎么了?
- 删除数组时出现问题(我不知道这个错误)
- 我的返回语句有一个错误,我不知道要修复