如何不使 if 语句与 else 语句"link up"

How to not make if statements "link up" with an else statement

本文关键字:语句 link up else 何不使 if      更新时间:2023-10-16

我正在制作一个简单的程序来问你是否想要披萨:

    #include <iostream>
    using namespace std;
    int main()
{
    char answer;
    cout << "Yes or no, would you like some pizza?: ";
    cin >> answer;
    cout << endl;
    if ((answer == 'n') || (answer == 'N')) {
        cout << "Have some anyway.";
    }
    if ((answer == 'y') || (answer == 'Y')) {
        cout << "Okay, here's your pizza!";
    }
    else {
    cout << "Huh? Give me a proper answer.";
    }
    cout << endl << endl;
    return 0;
}

如果您输入"是"或以 Y 开头的任何内容,它将返回"这是您的披萨"。问题是,如果您键入以 n 开头的任何内容,它会说"无论如何都有一些"和"嗯?给我一个正确的答案"。

我试图用另一个"如果"替换 else 语句

    if ((answer != 'n') || (answer !='N')) {
    cout << "Give me a proper answer";
}

并且对该 if 语句中的每个字母都这样做,但发生了相同的问题......帮助?

这是你要找的吗?

#include <iostream>
using namespace std;
int main()
{
    char answer;
    cout << "Yes or no, would you like some pizza?: ";
    cin >> answer;
    cout << endl;
    if ((answer == 'n') || (answer == 'N')) {
        cout << "Have some anyway.";
    }
    else if ((answer == 'y') || (answer == 'Y')) {
        cout << "Okay, here's your pizza!";
    }
    else {
        cout << "Huh? Give me a proper answer.";
    }
    cout << endl << endl;
    return 0;
}

之前发生的事情是,即使((answer == 'n') || (answer == 'N'))为 true,也会执行以下代码:

if ((answer == 'y') || (answer == 'Y')) {
    cout << "Okay, here's your pizza!";
}
else {
cout << "Huh? Give me a proper answer.";
}

。这就是为什么我们必须编写 else if 而不是 if ,以便上述代码仅在 ((answer == 'n') || (answer == 'N')) false 时才执行。

使用 else if 而不是第二个if

if ((answer == 'n') || (answer == 'N')) {
    cout << "Have some anyway.";
}
else if ((answer == 'y') || (answer == 'Y')) {
    cout << "Okay, here's your pizza!";
}
else {
cout << "Huh? Give me a proper answer.";
}
if (condition == true) {/*do this*/}
else if (other_condition == true) {/*do that*/} //repeat as much as you like
else {/*do other stuff*/}

或者使用 switch 语句:

switch(answer) {
case 'y': case 'Y': /*do this*/ break;
case 'n': case 'N': /*do that*/ break;
/*do other stuff*/
}

尝试在第二个 if 语句中使用 else if ...喜欢

else if ((answer == 'y') || (answer == 'Y')) {
        cout << "Okay, here's your pizza!";
    }

其他一切都很好