如何制作棋盘?
0表示白色,1表示黑色
我首先将它们全部设为0,然后尝试添加1,但它给了我
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
at unit1.Lesson35CheckerboardTask.main(Lesson35CheckerboardTask.java:33)
public static void main(String[] args){
int a[][] = new int [8][8];
for (int test = 0; test < a.length; test++)
{
int row = 0;
int col = 0;
for (int col1 =0; col1 < 8;col1++)
{
a[row][col] = 1;
col = col + 2;
}
row = row + 1;
col = (col - 6);
}
//(this prints it out)
for (int row = 0; row < a.length; row++)
{
for(int col = 0; col <a[row].length; col++)
{
System.out.print(a[row][col] + "\t");
}
System.out.println("");
}
}
}
答案 0 :(得分:1)
异常是因为你在内循环中,尝试执行
col = col + 2;
8次,导致您无法访问阵列。
为避免这种情况,您可以使用模运算符%
来大大简化循环:
int[][] a = new int[8][8];
for (int row = 0; row < a.length; row++) {
for (int col = 0; col < 8; col++) {
a[row][col] = (row + col) % 2;
}
}
这将在整个董事会0
和1
之间很好地交替。