2014-11-22 140 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你的循环将终止迟早的值。如果是这样,请取消之前评论过的两行中的一行,看看在这两种情况下会发生什么。