如果在C ++中忽略了语句

时间:2018-10-28 22:02:44

标签: c++ if-statement

我编写的源代码(请记住,我是一名新手,所以我目前正在通过一本书来自学。)

一切似乎都可行,但是代码似乎忽略了“ if(fahrenheit> = 80)语句。它与第一个语句参数一起使用,但是对于高于79和低于50的所有数字,它将跳转到else条件,而不是比为80以上的值输出不同的文本。

建议?

#include <iostream>

float convert(float);

int main()
{
    float fahrenheit;
    float celsius;

    std::cout << "Please enter the temperature in Celsius: ";
    std::cin >> celsius;
    fahrenheit = convert(celsius);
    std::cout << "\nThe temperature in Fahrenheit is: " << fahrenheit << "\n";


if ((fahrenheit <= 79) && (fahrenheit >= 50))
{
    if (fahrenheit >= 80)
    {
        std::cout << "\n What a hot day!\n";
        return 0;
    }

    std::cout << "\n What a nice day!\n";
}
    else
        std::cout << "\n It's freezing!\n";

    return 0;
}   

float convert(float celsius)
{
    float fahrenheit;
    fahrenheit = ((celsius * 9) / 5) +32;
    return fahrenheit;
}

1 个答案:

答案 0 :(得分:3)

if (fahrenheit >= 80)语句不会被忽略,这是不可能的。如所写,仅在fahrenheit <= 79fahrenheit >= 50都为真的情况下才检查该子句。如果fahrenheit必须在50到79之间(含50和79),怎么能大于或等于80?

您可能是这个意思:

if ((fahrenheit <= 79) && (fahrenheit >= 50))
{
    std::cout << "\n What a nice day!\n";
} else if (fahrenheit >= 80)
{
    std::cout << "\n What a hot day!\n";
}