使用==时,为什么此代码失败,但使用< =?

时间:2015-11-24 23:54:48

标签: java operators

我刚开始在futurelearn.com学习编程课程。

我有一个位图和一个球。任务是编码x方向的边界。

工作代码如下所示:

if ((mBallX <= mBall.getWidth()/2 && mBallSpeedX < 0) || (mBallX >= mCanvasWidth - mBall.getWidth()/2 && mBallSpeedX > 0)){
        mBallSpeedX = -mBallSpeedX;

但我有一个合乎逻辑的问题。我想明白为什么我不能使用&#34; ==&#34;而不是&#34;&lt; =&#34;。当我这样做时,球飞出屏幕的右侧。

这是一个了解的视频。它应该包含所有可能缺少的信息。:

https://www.futurelearn.com/courses/begin-programming/7/steps/42942

1 个答案:

答案 0 :(得分:0)

请记住,球不会连续移动 - 您可以按固定尺寸的不连续步骤移动它。结果,球不太可能完全最终在屏幕的一端或另一端。相反,它更可能意外地超过屏幕的一侧超过一些微量。如果您检查屏幕侧面的球是否正好,则您无法正确解释这些情况。另一方面,如果您询问球是否移过屏幕的两侧,那么您将正确地考虑这些情况。