我正在为我的课编写一个简单的射击“炮弹”游戏,当击中目标时,我必须让程序打印“ HIT”。我使用的代码是(h是y轴,d是x轴):

if (h > 100 && 680<d<780)
{
    write_string("HIT");
}


但是,即使仅满足以下条件之一,它也会打印“ HIT”。我该如何做才能在执行操作之前必须同时满足这两个条件?

如果需要为上下文发布更多代码,则可以。

最佳答案

这是因为<是二进制运算符,结果,表达式将以您不希望的方式进行求值。

检查运算符优先级表,似乎您的表达式正在被评估为(h > 100 && (680 < d) < 780),在这种情况下,它的真实性与d的值无关(因为(680 < d) = true会导致1 < 780(680 < d) = false将导致0 < 780)。但是h的值仍会影响。

无论如何,您必须将if条件重写为(h > 100 && 680 < d && d < 780)

关于c++ - 使用if语句满足两个条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48889554/

10-12 23:10