-1

我正在开发一个有图表的小游戏。这个想法是我在目标位置(由上限和下限指定)尚未满足(在 0.5 以内)时执行操作。例如,如果我以 (7,7) 为目标,则当 x 和 y (在本例中)介于 6.5 和 7.5 之间时,循环应该停止。

但是,当出现负数时,出现以下情况给我带来了问题:

while ((X < tarX-0.5 || X > tarX+0.5) && (Y < tarY-0.5 || Y > tarY+0.5))

例如:如果我有目标 (-7,-7),那么当 x 或 y 值之一在范围内时,循环将停止,而不是两者都在。

基本上,我的想法是根据 x 或 y 是否为正来创建四个不同的循环。但我想知道是否有更简单的方法?(我确实尝试使用 Math.abs() 来抵消负数,这很有效,但注定要 (-3,-3) 的东西仍然可以在 (3,3) 处停止)

4

1 回答 1

0

当 x 和 y (在这种情况下)都在 6.5 和 7.5 之间时,循环应该停止。

while (!(x >= 6.5 && x <= 7.5 && y >= 6.5 && y <= 7.5)) {
   ...
}

应用德摩根定律,以上等价于

while (x < 6.5 || x > 7.5 || y < 6.5 || y > 7.5) {
   ...
}
于 2012-12-09T17:54:56.510 回答