为什么我的if else语句不起作用

Chr*_*aff -1 c++

前两个语句以给定的数字输入运行,但第三个语句不运行.

#include <iostream>
using namespace std;

int main()
{

    double X;

    cout << "Please pick a number from -10 to 10";

    cin >> X;

    if ((-3 <= X)&&( X <= 2))
        cout << "Y = " << ( X * X) + (2 * X) -3 << endl;

    else if ((2 < X)&&(X <= 10))
        cout << "Y = " << (5 * X) + 7 << endl;

    else if ((X > 10)&&(X < -3))
        cout << "Y = " << 0 << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我选择-10或者11我收到的结果只是一个结束程序而不是"Y = 0".

Jer*_*yal 6

 if ((X > 10)&&(X < -3))
Run Code Online (Sandbox Code Playgroud)

在一个时间X不能X> 10和X<-3所以它总是返回false.

所以它永远不会进入(第三)if状态.

你可能想要使用||而不是&&如果有人是真的它可以进入内部if条件:

if ((X > 10)||(X < -3))
Run Code Online (Sandbox Code Playgroud)

  • @StevenHansen:在阅读代码时,这是你的误解,或者更可能是疏忽,让你以不同的方式感知问题. (2认同)