2014-11-22 147 views
0

何人,我在此代碼遇到這種奇怪的行爲:Java循環很奇怪的行爲

CubicInterpolation cInterp = new CubicInterpolation(x,y,1); 
    int step = 20; 
    int xp = (int) cInterp.getXmin(); 

    int xMax = (int) cInterp.getXmax(); 

    while(xp <= xMax) 
    { 
     int xC = xp; 
     xp = xp + step; 
     double yp = cInterp.interpolate(xC); 
     drawPoint(xC, (int) yp, 2); 
    } 

比方說,環XP之前= 128;它在循環中遞增,但當循環結束時第一次xp再次是128!所以循環永遠不會結束,我有堆棧溢出。 有人可以解釋我這種奇怪的行爲嗎?由於

+1

這不會是一個stackoverflow,它將是一個無限循環。你的問題在別處。注意:'a = a + b'通常寫爲'a + = b'。 – 2014-11-22 11:18:13

+0

是的,首先我有xp + = step,但是因爲我得到這個錯誤,我試圖以不同的方式寫它 – rickyalbert 2014-11-22 11:20:26

+1

'xp'和'xMax'的值是什麼? – 2014-11-22 11:20:56

回答

0

註釋掉interpolatedrawPoint您的通話(即第三和while循環4號線),並取決於xpxMax你的循環將終止遲早的值。如果是這樣,請取消之前評論過的兩行中的一行,看看在這兩種情況下會發生什麼。