问题是:编写一个程序,打印问题“您是否要继续?”并读取输入。如果用户输入为“是”,“是”,“是”,则打印出“继续”。如果用户输入是“ N”或“否”,则“否”然后打印出“退出”。否则,打印“输入错误”。使用逻辑运算符。
到目前为止,这是我编写的所有代码。我知道它还不完整,而且我不知道我还需要添加到代码中。
#include <iostream>
using namespace std;
int main() {
char response;
cout << "Do you wish to continue?" ;
cin >> response;
if (response == 'Y'){
cout << "Continuing";
}
else if (response == 'N'){
cout << "Quit";
}
else if (response != 'N' || 'Y'){
cout << "Bad input";
}
return 0;
}
更新:所以我编辑了代码,但仍然给我很多错误。这让我沮丧。请记住,我是一个初学者,我们还没有学习循环。抱歉头疼!
#include <iostream>
#include <string>
using namespace std;
int main() {
char response;
string help;
cout << "Do you wish to continue?" ;
cin >> response, help;
if (response == 'Y' || help == "Yes" || help == "YES"){
cout << "Continuing";
}
else if (response == 'N' || help == "No" || help == "NO"){
cout << "Quit";
}
else if (response != 'N' || response != 'Y' || help != "Yes" || help != "YES" || help != "No" || help != "NO"){
cout << "Bad input";
}
return 0;
}
答案 0 :(得分:1)
首先,我认为这是一个不错的开始。听起来您是C ++的新手,所以这里有一些建议:
1)您的响应变量只能包含一个字符。我建议包括字符串并更改响应,以从用户那里获取“ Y”,“是”等字符串。
2)我建议将代码包装在带有退出条件的while循环中。
3)每个逻辑分支都应包含一个返回整数。如果满足逻辑条件,这将为程序提供退出条件。
我知道我还没有完全给你答案。如果您确实陷入困境,请回复,我们可以逐步解决。
答案 1 :(得分:0)
一种简单的方法是将用户的答案简单地转换为大写或小写。这样,您可以简单地使用小写字母。 对于循环,您可以例如使用“ do..while”。
#include <iostream>
#include <string>
using namespace std;
int main() {
int stop = 0;
string response;
//Continue until the user choose to stop.
do{
//-------------
// Execute your program
//-------------
cout << "Do you wish to continue? ";
cin >> response;
//-------------
//Convert to lower case
for (string::size_type i=0; i < response.length(); ++i){
response[i] = tolower(response[i]);
}
//-------------
//Check the answer of the user.
if (response.compare("y") == 0 || response.compare("yes") == 0){
cout << "Continuing \n";
}
else if (response.compare("n") == 0 || response.compare("no") == 0){
cout << "Quit \n";
stop = 1;
}
else{
cout << "Bad input \n";
}
}while(stop == 0);
return 0;
}
答案 2 :(得分:0)
就像您在问题中所说的那样,我们关心Y,Yes,YES,N,No和NO。除此之外,我们需要打印“错误输入”。考虑一下您将如何存储这些响应(提示:Sam Varshavchik的答案)。
一旦您已经完成了提取用户输入的工作,就需要检查用户实际输入的内容并进行相应的操作。从您的问题看来,“否则”可能会。您需要更改“ if else ifs”的条件,因为 对于一种类型的响应,您有3个条件:Y,Yes和YES需要一个输出-“继续”,而N,No和NO需要一个不同的输出-“ Quit”,而对于其他所有输出,我们将输出“ Bad输入”。考虑一下您的条件应该是什么,您的if语句应该类似于:
if (response == "Y" || response == "Yes" || response == "YES")
,然后相应地处理此案。您希望对No条件执行相同的操作,最后对所有其他条件进行处理。我建议您使用如下代码:
if( conditionals for Yes){
//Code for Yes input
}
else if( conditionals for No){
//Code for No input
}
else{
//Code for all other inputs
}
很想为您提供完整的答案,但是考虑一下程序如何从那里流向并继续进行,您已经快知道了!
如果您在此处有其他问题,我们很乐意为您提供帮助!