【发布时间】:2016-06-08 20:13:10
【问题描述】:
所以我是 C++ 新手,我正在上入门课程,明天的作业是编写一个程序,该程序有 5 个问题,一些选择题,一些对错。
现在我正在处理第一个多项选择题,它必须有 4 个可能的答案(a、b、c、d),条件是:
- 如果用户输入的字母选择正确,则继续下一个问题。
- 如果用户输入了错误的字母选择,它会告诉用户他们错了,并再次询问他们问题。
- 如果用户输入除了 4 个字母之外的任何其他内容,则会显示无效输入错误,并再次询问他们问题。
2 和 3 会发生,直到他们输入正确的答案。
我正在尝试使用 while 循环(我认为这是要走的路?),然后在里面使用嵌套的 if/else 语句。
我遇到的问题是 Q1 字符串变量在输入时在开始时被实例化,然后就无法更改。使循环要么通过(如果回答正确)或无限重复。
如何刷新变量以使其不再重复,或者以完全不同且更好的方式执行此操作?就像我说的我是新人,所以如果我做错了愚蠢或错误的事情,请原谅我!
这是我目前的代码,到目前为止只有一个问题:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string Q1;
cout << "How many ounces are in 1 cup?" << endl;
cout << "A. 12 \nB. 8 \nC. 16 \nD. 4" << endl;
cin >> Q1;
while (Q1 != "B") {
if (Q1 == "A" || Q1 == "C" || Q1 == "D"){
cout << "Your selected answer " << Q1 << " is incorrect, please select another answer" << endl;
}
else {
cout << "Your answer is invalid, please enter either A, B, C, or D." << endl;
}
}
cout << "Correct! There are 8 ounces in one cup" << endl;
}
【问题讨论】:
-
um
cin >> Q1;在循环的末尾? -
@NathanOliver 哇,我觉得自己真的很愚蠢,真的就这么简单。出于某种原因,我想象当被重新问这个问题时,它也必须重新问可能的答案,但这真的毫无意义。谢谢!
标签: c++ variables while-loop infinite-loop