为什么我不能使用if和if else语句为变量赋值?

时间:2014-05-27 17:30:57

标签: c++ variables if-statement

#include <iostream>
using namespace std;

void main()
{
    int leftover;
    int gold = 3900;//satisfies the if else statement

    if( gold>=4100){//successfully build item
        leftover = gold-4100;
    }
    else if(4100>gold>=3500){
        leftover = gold-3500;
    }

    cout << leftover << endl;
    system("pause");
}

此代码不起作用,它将显示剩余使用而未初始化。但是当我改变gold(等等4200)的值以满足if语句时,它会起作用,显示从4100中扣除金币之后的余数。我只是在学校学习c ++所以我不熟悉if和if else还有很多感谢告诉我出了什么问题!

3 个答案:

答案 0 :(得分:9)

4100>gold>=3500没有按你的想法行事。它被评估为(4100>gold) >= 3500,具体取决于gold的值0 >= 35001>3500。查找运算符优先级。

你可能想要

(4100>gold) && (gold>=3500)

答案 1 :(得分:0)

如果你没有初始化该值并且if语句失败,那么你就是cout null 你有两个建议:
第一:
    int leftover = -1; //初始化值

第二场:
    else {leftover = 0; } //如果if case失败,则默认值

答案 2 :(得分:0)

是的,我犯了一个非常粗心的错误,唯一的问题是4100&gt; gold&gt; 3500永远不会被评估。 感谢所有回答并指出使用AND门而不是共享操作数的人!