去年我使用Python参与了康威的生命游戏。今年,我正在修读Java课程。我们的进展非常缓慢,我甚至无法理解教授,所以我有点努力。
上次我创建它时,我从未真正理解生命游戏背后的概念,所以我正在用Java重新探索它。现在,我只是想打印出我最初的游戏板。这是正常的,但编译器向我抛出一个我无法理解的错误。我已经尝试使用Google搜索来找到答案,但已经出现了一些解释。请帮帮忙?
public class Game {
public static void main(String args[]) {
int i = 0;
int j = 0;
int a = 0;
int b = 5;
int[][] gameBoard = new int[][]{
{ 1, 2, 3, 4, 5},
{ 2, 0, 0, 0, 0},
{ 3, 0, 0, 0, 0},
{ 4, 0, 0, 0, 0},
{ 5, 0, 0, 0, 0}
};
while(a != b)
{
if(j == 5)
{
i++;
j = 0;
a++;
System.out.println();
}
System.out.printf("%d ",gameBoard[i][j]);
j++;
}
}
}
编译器抛出此错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Game.main(Game.java:30)
答案 0 :(得分:2)
允许i
继续递增,直到它大于4 - 然后超过数组的限制。数组神奇地变得更大 - 你必须控制你的索引大小!
我怀疑你不是(只是)想要a!=b
条件而是i<5