1

这里可能是一个非常简单的问题,但我觉得很奇怪。幸运的是,我找到了解决方法,但事实上我所做的工作和标题中的内容都不起作用,这让我感到非常困惑!

我只有一个简单的 if 语句……然后执行一个函数。此代码有效:

if (200 > (x-target.x) && (x-target.x) > 0)
                fireWeapon();

但是这段代码没有!

if (200 > (x-target.x) > 0)
                fireWeapon();

AS3 也没有给我一个错误......它只是简单地为条件做一个 if 语句

if (200 > (x-target.x))

并且似乎忽略了它必须大于 0 的语句。我想在将来使用更短、在数学上更漂亮的方法,所以如果有办法解决 && 符号,请告诉我!谢谢。

4

1 回答 1

2

if (200 > (x-target.x) > 0)代码正在工作。但你的想法是不同的。计算机来解释一个句子。评价如下。

1) 200 > ( x-target.x ) 如果 200 大于 (x-target.x) 返回 true,而不是 false。

2) true(1) 或 false(0) > 0 如果左语句为 true,则返回 true,(因为 1 大于 0)不为 false。

因此,如果 200 大于 (x-target.x) 总是返回 true,而不是 false。一般来说,计算机语言中使用的语法与数学语法不同。

而你想要x> y> z的必须更改为x>y && y>z && x>z.

于 2013-07-13T12:33:08.353 回答