我正试图让我的循环通过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));
}
}
}
答案 0 :(得分:1)
您的代码存在一些问题。首先,最好在if
分支中进行工作,而不是在else
中进行。然后我认为问题可能出在这行代码中:
goldenBallPosition -=16;
如果我没有正确理解你的代码,那么如果你使用像这样的循环
,它会有所帮助for (int i = 15; i >= 0; i--)
执行期间是否收到ArrayOutOfBoundException
?