我无法弄清楚为什么我的代码运行不正常 - 我只是从查找表中分配一堆值,然后运行检查以确保值都等于零。出于某种原因,我正在运行的“检查”一直在失败(并分配默认值),即使基础数字不合理 - 有人可以向我解释为什么我的“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 - 任何人都可以解释我的代码有什么问题吗?
答案 0 :(得分:13)
您的if
之后还有一个额外的分号。
此...
if (...); {
}
......需要这样:
if (...) {
}
在第一种情况下,附加到if
的代码是单个空语句;
。然后,无论{}
的结果如何,都会执行if
中的代码块。