此代码段存在问题:
else if (mineOrRefine == "refine" || mineOrRefine == "Refine")
if (StoneInventory[0] == 0)
cout << "You currently have no stone!" << endl;
int a = StoneInventory[0];
else if (a == >1)
答案 0 :(得分:1)
您并不是说问题出在哪里,但是我可以保证它与括号不足有关。将if和else块放到括号中,即使只是一行,也可以减少混乱。一般情况下,在if / else之后,我不会就是否在单个表达式周围加上括号进行辩论,只是在您的情况下,缺少括号使您感到困惑,因此将它们放入。
答案 1 :(得分:0)
使用(a> = 1)或(a> 0)代替(a ==> 1)
同样,任何具有多行代码的“ if”语句都应使用花括号。即:if (x) { /* code */ }
。
答案 2 :(得分:0)
您在if
中迷路了,您确实需要添加花括号以查看发生了什么。该代码相当于:
if (something_you_havent_shown)
{
// something else you haven't shown
}
else if (mineOrRefine == "refine" || mineOrRefine == "Refine)
{
if (StoneInventory[0] == 0)
{
std::cout << "You currently have no stone!" << std::endl;
}
}
int a = StoneInventory[0];
else if (something_you_say_youve_changed_since_asking_the_question)
最后一行中的else
与前面的if
都不匹配-它们都已完成,因为每个仅应用于下一行。