If和else-If语句.它是如何在下面的代码中工作的

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

本文关键字:在下面 代码 工作 else-If 语句 If      更新时间:2023-10-16

此代码的目标是在输入的年龄小于0或大于110时输出错误消息。然而,如果我输入一个奇怪的数字,比如600,它似乎不会通过if语句,而是通过else-if语句。所以当年龄=600时,我得到的是"我听说你过生日了,你已经600岁了",而不是"你在开玩笑"。我想知道目前是如何阅读的,以及我如何修复它。

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 oldn";
    }
}

您有两个错误:

  1. 如果你需要写||而不是&&

  2. 第二个如果没有必要,并且您需要删除;

    这是谷歌代码:

    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 oldn";
    }
    }
    

您混淆了&运算符和|运算符。

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

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

所以,

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

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

你得到"我听说你过生日了,你已经600岁了"输出的原因是因为你的else if语句末尾有一个分号。