OR(||)运算符在C ++中无法正常工作

时间:2013-07-08 12:59:36

标签: c++ if-statement

我无法弄清楚为什么我的代码运行不正常 - 我只是从查找表中分配一堆值,然后运行检查以确保值都等于零。出于某种原因,我正在运行的“检查”一直在失败(并分配默认值),即使基础数字不合理 - 有人可以向我解释为什么我的“if /或”语句在下面不起作用吗?我已经确认我在上面指定的所有值在分配时都有效...

    PF[i].pMktRefNoi = MD[mProp[i].m_NoiVectorNumber-1].Values[mProp[i].m_StartfColNum-1];
        cout << PF[i].pMktRefNoi << endl;
    PF[i].pMktRefVal = MD[mProp[i].m_ValVectorNumber-1].Values[mProp[i].m_StartvColNum-1];
        cout << PF[i].pMktRefVal << endl;
    PF[i].pMktRefRent = MD[mProp[i].m_RntVectorNumber-1].Values[mProp[i].m_StartfColNum-1];
        cout << PF[i].pMktRefRent << endl;
    PF[i].pMktRefOcc = MD[mProp[i].m_OccVectorNumber-1].Values[mProp[i].m_StartfColNum-1];
        cout << PF[i].pMktRefOcc << endl;

    // Error check the starting values we just assigned
    if (PF[i].pMktRefNoi <= 0 || PF[i].pMktRefVal <= 0 || PF[i].pMktRefRent <= 0 || PF[i].pMktRefOcc <= 0); {
    PF[i].Result = "Error - Invalid Starting Vector Value";
    PF[i].pMktRefNoi = 100;
    PF[i].pMktRefVal = 100;
    PF[i].pMktRefRent = 100;
    PF[i].pMktRefOcc = 100;
    }

因此,在上面的代码中,每个“cout”语句在输出中验证所有值都已正确分配并且大于零。但是,在if语句之后,一切仍然被重新分配到100 - 任何人都可以解释我的代码有什么问题吗?

1 个答案:

答案 0 :(得分:13)

您的if之后还有一个额外的分号。

此...

if (...); {

}

......需要这样:

if (...) {

}

在第一种情况下,附加到if的代码是单个空语句;。然后,无论{}的结果如何,都会执行if中的代码块。