我正在为我的课编写一个简单的射击“炮弹”游戏,当击中目标时,我必须让程序打印“ 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/