我无法找到我的代码有什么问题,一切都很好,直到我到达Jagged数组。我希望它将代码显示为锯齿状数组,但我不知道
package ajk;
public class Test2
{
public static void main(String[] args)
int[][] twoD = {
{1, 2},
{3, 4, 5},
{6},
{7, 8, 9},
};
printArray(twoD);
}
public static void printArray(int[][] arr) {
System.out.println("[");
int r = 4;
int c = 3;
int i, j;
for (i=0; i < r; i++ );
System.out.print("[");
for (j=0; j < c; j++ ) {
System.out.print( arr[i][j] + " " );
}
}
}
答案 0 :(得分:1)
您有一些语法错误和错误:
for (i=0; i < r; i++ );
你不能像这样使用for循环。您必须在大括号中编写代码
您的阵列的列大小彼此不同,因此您无法使用一个变量确定列大小。对于这种情况,最好的方法是array[i].length
您可以在for循环的parantez中定义i和j。
如果您更改以下代码:它将运行
public class Test2
{
public static void main(String[] args) {
int[][] twoD = {
{1, 2},
{3, 4, 5},
{6},
{7, 8, 9},
};
printArray(twoD);
}
public static void printArray(int[][] arr) {
System.out.println("[");
for (int i=0; i < arr.length; i++ ) {
System.out.print("[");
for (int j=0; j < arr[i].length; j++ ) {
System.out.print( arr[i][j] + " " );
}
}
}
}
答案 1 :(得分:0)
您在代码中犯了一些错误
1.总是将for循环的代码放在花括号中,如for(){}
2.您通过使数组索引超出界限而犯了一般错误,您应该使用array[i].length
来确保列大小彼此不同
3.您的代码应该如下所示,请更改并尝试下面的代码
public class Test2
{
public static void main(String[] args){
int[][] twoD = {
{1, 2},
{3, 4, 5},
{6},
{7, 8, 9}
};
Test2.printArray(twoD);
}
public static void printArray(int[][] arr) {
System.out.println("[");
int r = 4;
int c = 3;
int i, j,a=0;
for(i=0; i<r; i++ ){
System.out.print("[");
for (j=0; j<arr[i].length; j++ ) {
System.out.print( arr[i][j] + " " );
}
System.out.println("]");
}
}
}
我还添加了另一个方括号以便更好地理解
答案 2 :(得分:0)
它&#39;实际上非常简单。 Arrays类有一些静态方法来打印自己的元素(int,double,Objects等)。因为这里是二维数组,所以在循环中你会遍历arr的每个元素(这是一个int数组),并调用这个方法。 Arrays.toString(someArr)将someArr表示为String。
for (int row = 0; row < arr.length; row++) {
int[] arr1D = arr[row];
System.out.println(Arrays.toString(arr1D));
}