int[][] input = new int[3][];
int count = 1;
for(int i = 0; i <= 2 ; i++ ) {
for(int j = 0; j <= 2; j++) {
input[i][j] = count++;
}
}
第五行引发错误。
答案 0 :(得分:1)
数组的第二维是空的。
int[][] input = new int[3][];
试试这个:
int[][] input = new int[3][3];
答案 1 :(得分:0)
您需要初始化第二个维度
1)int[][] input = new int[3][3];
或
2)
for(int i = 0; i <= 2 ; i++ ){
input[i] = new int[3];
}
答案 2 :(得分:0)
因为未指定第二个数组维度。
这应该运行:
int[][] input = new int[3][3];
int count = 1;
for(int i = 0; i <= 2 ; i++ ){
for(int j = 0; j <= 2; j++){
input[i][j] = count++;
}
}
请参阅executable示例
答案 3 :(得分:0)
因为您没有指定第二个尺寸。
答案 4 :(得分:0)
int[][] input = new int[3][];
这种类型的数组称为不规则数组。 您必须为每个行定义列的大小。像这样:
input[0]=new int[2];//for row 1 (row 1 contain 2 column)
input[1]=new int[5];//for row 2 (row 2 contain 5 column)
input[2]=new int[1];// for row 3 (row 3 contain 1 column)
因此,您可以根据需要定义每行的列大小
/ *衣衫褴褛的数组 是多维数组,其中 行有不同的cols。 * /
class Ragged
{
public static void main(String args[])
{
//declaration of a ragged array
int arr[][] = new int[3][];
//declaration of cols per row
arr[0] = new int[4];
arr[1] = new int[2];
arr[2] = new int[3];
int i, j;
for(i =0; i< arr.length; i++)
{
for(j =0 ; j< arr[i].length; j++)
{
arr[i][j] = i + j+ 10;
}
}
for(i =0; i< arr.length; i++)
{
System.out.println();//skip a line
for(j =0 ; j< arr[i].length; j++)
{
System.out.print(arr[i][j] + " ");
}
}
//-------------more----------------
int temp[];//int array reference
//swap row2 and row3 of arr
temp = arr[1];
arr[1] = arr[2];
arr[2] = temp;
System.out.println();//skip a line
for(i =0; i< arr.length; i++)
{
System.out.println();//skip a line
for(j =0 ; j< arr[i].length; j++)
{
System.out.print(arr[i][j] + " ");
}
}
}//main
}//class
/ * 声明一个参差不齐的数组定义一个 带有val的多维数组 最后一个维度缺失。
明确定义大小 所有行的最后一个维度。 * /
答案 5 :(得分:0)
您需要在初始化期间指定第二个数组的大小。 您还可以使用数组的.length属性来避免硬编码大小。
int[][] input = new int[3][3];
int count = 1;
for(int i = 0; i <= input.length ; i++) {
for(int j = 0; j <= input[i].length; j++) {
input[i][j] = count++;
}
}