簡體   English   中英

OR(||)運算符在C ++中無法正常工作

[英]OR (||) operator not working correctly in C++

我無法弄清楚為什么我的代碼運行不正確 - 我只是從查找表中分配一堆值,然后運行檢查以確保值都等於零。 出於某種原因,我正在運行的“檢查”一直在失敗(並分配默認值),即使基礎數字不合理 - 有人可以向我解釋為什么我的“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 - 任何人都可以解釋我的代碼有什么問題嗎?

if之后你有一個額外的分號。

這個...

if (...); {

}

......需要這樣:

if (...) {

}

在第一種情況下,附加到if的代碼是單個空語句, ; 然后執行{}內的代碼塊,而不管if的結果如何。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM