【问题标题】:Why does this code fail when using == but work using <=?为什么使用 == 时此代码会失败,但使用 <= 时可以工作?
【发布时间】:2016-02-27 15:08:16
【问题描述】:

我刚开始通过 futurelearn.com 上的一门课程学习编程。

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

工作代码如下所示:

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

但我有一个逻辑问题。我想了解为什么我不能使用“==”而不是“

这里有一个视频供大家理解。它应该包含所有可能缺少的信息。:

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

【问题讨论】:

    标签: java operators


    【解决方案1】:

    请记住,球不是连续移动的——您是在以固定大小的离散步长移动它。因此,球完全落到屏幕的一端或另一端的可能性极小。相反,它更有可能意外地超出屏幕的一侧少量。如果您检查球是否正好在屏幕的一侧,您将无法正确考虑这些情况。另一方面,如果您询问球是否移动过屏幕的两侧,那么您将正确地解释这些情况。

    【讨论】:

    • 感谢您的快速帮助:)我现在明白了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    相关资源
    最近更新 更多