我正在测试for循环,以便在屏幕上平滑移动对象。
int yPosLeft = 339;
int originalYPosLeft = yPosLeft;
for(yPosLeft < 30 + originalYPosLeft; yPosLeft++) {
// Changes the value in the statement
}
然而,循环以某种方式使对象的y位置永远进入负数百万,并且几乎需要强制退出。有什么建议吗?
更新:我对此很愚蠢。为#BrainFart #Fixed
道歉答案 0 :(得分:5)
你的条件是:
yPosLeft < 30 + yPosLeft
......这将永远是真的。值总是小于30加上相同的值。
因此,循环将永远持续,你的对象的y位置将永远移动! (也就是说,直到yPosLeft
变得如此之大以至于溢出 - 但我严重怀疑这是所期望的行为。)
答案 1 :(得分:3)
每个号码总是低于自身+任何正数。所以条件总是被评估为真,因此你的循环会永远运行。
你需要重做你的循环。您可以阅读更多相关信息here。
答案 2 :(得分:0)
也许你的意思是:
int yPosLeft = 339;
for(int i = yPosLeft; i > yPosLeft - 30; i--) {
// Changes the value in the statement
}
但我不是Oracle;) - 只是猜测