【发布时间】:2021-02-10 00:33:13
【问题描述】:
我创建了一个询问鞋码的程序。如果鞋码正确,用户会收到一条消息,“你是对的,你想再试一次吗?”他们可以回答是或否。如果他们选择“否”,程序将中断,他们会收到另一条消息,“感谢您的参与!”
如果用户输入yes而不是no作为答案,有没有办法强制程序重新进入while循环?
#include <iostream>
#include <string>
using namespace std;
int main()
{
int shoesize = 13;
int input;
string answer;
while (input != shoesize) {
cout << "Guess my shoe size!";
cin >> input;
if (input == shoesize) {
cout << "You are correct! Thanks for Playing! Would you like to play again? \n";
cin >> answer;
if (answer == "no") {
cout << "Thank you for playing!";
}
}
}
return 0;
}
【问题讨论】:
-
您从错误的角度处理问题。当用户输入
yes时,您不需要“重新进入”循环。如果用户输入no,您需要break退出循环。 -
无法进入循环。最好不要一开始就离开循环。
-
它已经做到了。只有这样,它才会检查是否
input != shoesize,这仍然是错误的,因为它仍然在input中拥有来自用户的最后一个答案。 -
@user4581301 好吧,从技术上讲这是可行的,但我会因为提到
goto而被钉死在十字架上,所以我们可以选择“不可行”。 -
while (input != shoesize) {是当前代码中的一个错误,因为在第一次命中此代码时,input尚未初始化。
标签: c++ loops while-loop