我是编程新手,正在尝试做一个长的do while
循环,其中嵌套了if
语句,但是我在让我的循环真正循环方面遇到了问题。
与其直接在我的项目上寻求帮助(该项目代码非常长),我创建了一个简单的类似版本,但它也无法循环。它会到达结尾并询问用户是否想要再试一次,但当输入"y"时,它会忽略if语句。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string sodaChoice;
char answer = 'n';
do
{
cout << "Please choose your favorite soda from the following: Rootbeer, Diet Coke, Coke, Sprite" << "\n";
getline(cin, sodaChoice);
if (sodaChoice == "Rootbeer")
{
cout << "Me too!" << "\n";
}
else if (sodaChoice == "Diet")
{
cout << "Not me :(" << "\n";
}
else if (sodaChoice == "Coke")
{
cout << "It's alright" << "\n";
}
else if (sodaChoice == "Sprite")
{
cout << "only if I'm sick" << "\n";
}
else
{
cout << "That was not on the list";
}
cout << "would you like to try again?";
cin >> answer;
} while (answer == 'y'|| answer == 'Y');
return 0;
}
我想也许我需要在if语句周围的do循环中嵌套一个do循环,但我不知道该如何去做。任何帮助都将不胜感激。我已经花费了很多很多小时来尝试解决它。
我试图询问我的老师,但是我的大学教授一些基于其书籍的通用课程,由他们的院长编写。他对于帮助或者教学并不是非常热情。
编辑: 感谢各位的答案! 关于这个问题是否重复,我还没有学习cin.ignore,因此我不清楚它与我的问题有关。谢谢你们教给我!