[英]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.