2014-01-18 81 views
-4

我正在測試一個for-loop,用於在屏幕上平滑移動一個對象。For Loop不工作

int yPosLeft = 339; 
int originalYPosLeft = yPosLeft; 

for(yPosLeft < 30 + originalYPosLeft; yPosLeft++) { 
// Changes the value in the statement 
} 

但是,循環以某種方式使對象的y位置永遠進入負數百萬,並且幾乎需要強制退出。有什麼建議麼?

更新:我對此很蠢。對於#BrainFart #FIXED

+9

一些瘋狂的保單這裏 –

+3

愚蠢的問題不存在,但是這一個是已經非常接近 – Gerard

+2

洛爾'yPosLeft <30 + yPosLeft'和'yPosLeft = yPosLeft' –

回答

5

你的條件是道歉:

yPosLeft < 30 + yPosLeft 

...這將永遠是正確的。值總是小於30加上相同的值。

因此,循環將永遠持續下去,並且對象的y位置將永遠移動! (也就是說,直到yPosLeft變得如此之大,它溢出 - 但我嚴重懷疑這是所需的行爲。)

+0

此循環不會永久運行。它會終止(在looooooooooooong時間後)。 – 4J41

+0

@Ajai公平點! – berry120

3

每一個數字會總是比本身+任意正數差。所以這個條件總是被評估爲真,因此你的循環會永遠運行。

你需要重做你的循環。你可以閱讀更多關於它here

+0

此循環不會永久運行。它會終止(在looooooooooooong時間後)。 – 4J41

0

也許你的意思是:

int yPosLeft = 339; 

for(int i = yPosLeft; i > yPosLeft - 30; i--) { 
// Changes the value in the statement 
} 

,但我不是一個Oracle) - 只是猜測

+0

哎呀,我正在與一隻貓在鍵盤上戰鬥...... –

+0

@Downvoter他不配得到-1了。這很可能是OP正在尋找的答案。 –

+0

:)這是一個艱難的 –