if 和 else if 语句。它在下面显示的代码中如何工作?

If and else if statements. How does it work in my code shown below?

这段代码的objective是当输入的年龄小于0或大于110时输出错误信息。但是,如果我输入一个奇怪的数字,比如600,它似乎并没有通过 if 语句,但通过 else if 语句。 所以当 age=600 时,我得到 "I hear you had a birthday and you are 600 years old" 而不是 "error you are kidding"。我想知道目前它是如何被阅读的以及我该如何修复它。

int main {
    cout << "Enter the age of the recipient";
    cin >> age;

    if ((age <= 0) && (age >= 110))
    {
        cout << "error: you're kidding";
    }

    else if ((age > 0) && (age < 110));
    {
        cout << "I hear you just had a birthday and you are " << age
            << " years old\n";
    }
}

您将 & 运算符与 | 运算符混淆了。

一个数字不能同时小于 0 和大于 110。

您需要检查它是小于 0 还是大于 110。

所以,

if ((age<0) || (age>110))

一旦你检查了第一个条件,你就不需要检查相反的条件,即如果年龄在两个数字之间,那么你可以在之后使用 else

您得到 "I hear you had a birthday and you are 600 years old" 输出的原因是因为您在 else if 语句末尾有一个分号。

你有 2 个错误:

  1. 在第一个如果你需要写||而不是&&

  2. 第二个if不需要,你需要删除;

    这是好的代码:

    int main 
    {
    int age;
    cout << "Enter the age of the recipient";
    cin >> age;
    
    if ((age <= 0) || (age >= 110))
    {
        cout << "error: you're kidding";
    }
    
    else 
    {
        cout << "I hear you just had a birthday and you are " << age
            << " years old\n";
    }
    }