我的if-else语句中的no选项无法正常工作

时间:2014-12-27 16:57:33

标签: c++ if-statement output

我写了这段代码来使用if-else语句但是" no"输出与yes相同,我首先尝试在本地声明yes和no变量,并修复了我得到的第一个错误。但现在他们无法区分输出。无论输入是什么,是和否的条件。

以下是代码:

#include<iostream>
#include<string>
using namespace std; 
int main()
{
    string name;
    bool answer;
    cout<<"Welcome user 'Divine 9'..."<<"What is your name?"<<endl;
    getline(cin, name);
    cout<<endl<<"Hello "<<name<<", my name is Xavier."<<endl<<" I am going to ask you some questions about yourself. Fear not, i will not take any of your information back to the boss man, or store it."<<endl;
    cout<<"Is this okay with you? (yes/no)"<<endl;
    cin>>answer;
    {
        bool yes;
        bool no;
        if(answer==yes)
        cout<<"Great, will proceed with the questions!"<<endl;
        else (answer==no)
        cout<<"That is okay.";
    }
    return 0;
}        

所以,如果我输入yes,它将输出:

&#34;很好,将继续提问。&#34;

没关系。

如果我输入no,它将输出相同的内容。 有人可以帮我解决这个问题吗?我以为我有它,但我想我不是

2 个答案:

答案 0 :(得分:2)

我在这里看到两个不同的问题:第一个是你用字符串比较一个布尔值,第二个问题是你没有初始化你的布尔变量。 我建议你改变if(answer=="yes")中的if语句 if(answer=="no") 但我不明白你是否正在尝试这样做。

编辑:阅读评论我弄清楚OP意味着什么。当然answer应该是std::string类型。

答案 1 :(得分:1)

你没有在else之后提出条件。你只需要声明或阻止 - 条件就是前一个if失败了。所以它应该是:

if (answer == yes) {
    cout<<"Great, will proceed with the questions!"<<endl;
} else {
    cout<<"That is okay, still love the Gamma Sig ladies, especially that_girl_teejay :-)";
}

如果您想测试其他条件,请使用else if (condition)

另一个问题:您从未初始化yesno。它应该是:

bool yes = true;
bool no = false;

但这些都没用。你不需要将布尔值与任何东西进行比较,你可以直接在条件中使用它们:

if (answer) {
    cout<<"Great, will proceed with the questions!"<<endl;
} else {
    cout<<"That is okay, still love the Gamma Sig ladies, especially that_girl_teejay :-)";
}

请注意,当您使用bool输入cin >> answer时,您无法输入yesnobool仅允许输入1(适用于true)和0(适用于false)。如果你想允许单词作为答案,你应该输入一个字符串并与字符串进行比较。它应该是:

string answer;
...
const string yes = "yes";
const string no = "no";
if (answer == yes) {
    cout<<"Great, will proceed with the questions!"<<endl;
} else if (answer == no) {
    cout<<"That is okay."<<endl;
} else {
    count<<"Please enter yes or no."<<endl;
}