我试图让我的循环遍历数组16次。当我使用upCollisions [i]时,它不起作用,但是当我使用upCollisions [0]或该数组的任何其他索引时,它可以工作。我不明白为什么不能使用for循环。

这是我的代码:

public void handleUpArrow()
{
    int upCollisions[] = {15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,};
    for(int i =0; i < 16; i++)
    {
        if(goldenBallPosition == upCollisions[i])
        {
        }
        else
        {
            jBGrid[goldenBallPosition].setIcon(imageSand);
            jBGrid[goldenBallPosition -16].setIcon(imageBall);
            goldenBallPosition -= 16;
            jBCompass.setIcon(imageCompassNorth);
            jTDirection.setText("N");
            jTSquare.setText((""+goldenBallPosition));
        }
    }
}

最佳答案

您的代码存在一些问题。首先,最好在if分支而不是else中进行工作。然后我认为问题可能出在这行代码中:

goldenBallPosition -=16;


如果我不正确地理解您的代码,那么使用这样的循环可能会有所帮助

for (int i = 15; i >= 0; i--)


执行过程中没有收到ArrayOutOfBoundException吗?

关于java - Java-数组在循环内不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28864090/

10-11 12:12