这个IF声明本身有什么问题吗?因为它一直都是正确的,所以如果我的某些地方的语法错误而且它扔掉了,我就会徘徊?
if (questinfo.targetitem == "coins" && questinfo.targetitemquant >= coins)
{
cout << "You have enough coins to complete your task!" << endl;
questactive = false;
}
questinfo.targetitem
是string
(不是字符数组)
questinfo.targetitemquant
是int
questactive
是bool
coins
是int
。
targetitemquant
从不大于coins
,但语句总是完成为真。请告诉我,我的语法有问题,否则这就更难以确定:(。谢谢。
答案 0 :(得分:1)
如果语法错误,编译器将产生错误,因此无论如何你都会知道。
如果它正在编译但没有按预期工作,则会出现逻辑错误,在这种情况下,您可以使用调试器来解决原因。
它似乎不是语法错误,所以我建议调试它。
答案 1 :(得分:1)
从语法上讲,上面的代码是正确的,因此它编译。
我假设你已经彻底破坏了你的代码&amp;无论你说的是什么,我在这里看到的可能性是,,,
可能是您存储的值大于signed int
。
因此,导致溢出代表负值..
如果targetitemquant是非负值,请尝试使用unsigned int
数据类型..