Java 在二维数组中填充随机数以进行列/行相加
大家好,Java新手,我进展缓慢。在添加行和列之前,我试图用随机数填充二维数组。到目前为止,我可以创建数组,显示它,并且我非常确定我已经对加法位进行了排序。但当我尝试用随机数填充它时,我有一种出界的感觉。我哪里做错了Java 在二维数组中填充随机数以进行列/行相加,java,arrays,random,fill,Java,Arrays,Random,Fill,大家好,Java新手,我进展缓慢。在添加行和列之前,我试图用随机数填充二维数组。到目前为止,我可以创建数组,显示它,并且我非常确定我已经对加法位进行了排序。但当我尝试用随机数填充它时,我有一种出界的感觉。我哪里做错了 public static void main(String[] args) { //create the grid final int row = 9; final int col = 9; int [][] grid = new int [row
public static void main(String[] args)
{
//create the grid
final int row = 9;
final int col = 9;
int [][] grid = new int [row][col];
//fill the grid
for (int i=0; i<grid.length; i++)
grid[i][grid[i].length] = (int)(Math.random()*10);
//display output
for(int i=0;i<grid.length; i++)
{
for(int j=0; j<grid[i].length; j++)
System.out.print(grid[i][j]+"");
System.out.println();
}
int sum = 0;
for (int i = 0; i < grid.length; i++) {
System.out.println("This row sums up to: " + sum);
for (int j = 0; j < grid[i].length; j++) {
sum += grid[j][i];
}
System.out.println("This column sums up to: " + sum);
}
}
这将是一个越界的例外。数组a
的最大索引是a.length-1
(因为数组是0索引的)——您正在尝试访问a.length
的索引。这里a
是grid[i]
在任何情况下,如果要完全填充阵列,则需要两个循环:
for (int i = 0; i < grid.length; i++) {
for (int j = 0; j < grid[i].length; j++) {
grid[i][j] = (int)(Math.random()*10);
}
}
它不那么冗长,也许更清晰。Argh!当然这很有道理。非常感谢您的帮助。@Bmc没问题,很高兴我能帮忙。别忘了。
for (int i = 0; i < grid.length; i++) {
for (int j = 0; j < grid[i].length; j++) {
grid[i][j] = (int)(Math.random()*10);
}
}
int sum = 0;
for (int[] row : grid)
for (int n : row)
sum += n;