我在打印我的2D阵列时遇到问题...我的最终目标是输出如下:
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
19 36 45 44 47
64 48 47 74 99
55 7 48 12 21
78 19 95 61 11
第一组数字打印得很好但我在尝试打印第二组后仍然收到错误信息。我应该在代码中更改什么?
/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package array2d;
/**
*
* @author stevebrowning
*/
public class Array2d
{
public static void main(String[] args)
{
int [][] array2d = new int [4][5];
array2d [0][0] = 0;
array2d [0][1] = 0;
array2d [0][2] = 0;
array2d [0][3] = 0;
array2d [0][4] = 0;
array2d [1][0] = 0;
array2d [1][1] = 0;
array2d [1][2] = 0;
array2d [1][3] = 0;
array2d [1][4] = 0;
array2d [2][0] = 0;
array2d [2][1] = 0;
array2d [2][2] = 0;
array2d [2][3] = 0;
array2d [2][4] = 0;
array2d [3][0] = 0;
array2d [3][1] = 0;
array2d [3][2] = 0;
array2d [3][3] = 0;
array2d [3][4] = 0;
int rows = 4;
int columns = 5;
int m, n;
for ( m = 0; m < rows; m++) {
for ( n = 0; n < columns; n++) {
System.out.print( array2d[m][n] + " ");
}
System.out.println( "")
}
}
int [][] array2d = new int [][] {{19, 36, 45, 44, 47},
{64, 48, 47, 74, 99},
{55, 7, 48, 12, 21},
{78, 19, 95, 61, 11}};
for ( int i = 0; i < array2d.length; i++ )
System.out.println( array2d[i] );
}
答案 0 :(得分:3)
在第一个示例中,您有两个循环;一个用于行,一个用于列。
在第二个示例中,只有一个循环。
为什么当你做不同的事情时,你会发生同样的事情?
你知道,关于编程的事情是:细节很重要。您没有写下某些代码,您仔细考虑并记下所需的代码。
最后:你不应该硬编码数组的维度 - 在这个意义上你的第二个循环更好,因为它使用array.length而不是手动赋值。
答案 1 :(得分:1)
为什么不像第一个那样打印第二个?
for ( i = 0; i < rows; i++) {
for ( j = 0; j < columns; j++) {
System.out.print( array2d[i][j] + " ");
}
System.out.println();//no need for quotes in a line break
}
}
答案 2 :(得分:1)
如果初始化数组中的任何元素,则数组中的所有元素将初始化为零。所以上面的代码不需要循环。
int array2d[][]=new int[4][4];
array2d[0][0]=0;
//to display the array2d
for(int x[]:array2d){
for(int y:x)
System.out.print(y+" ");
System.out.println();
}
用这个代替上面的代码。
array2d = new int [][] {{19, 36, 45, 44, 47},
{64, 48, 47, 74, 99},
{55, 7, 48, 12, 21},
{78, 19, 95, 61, 11}};
for(int x[]:array2d){
for(int y:x)
System.out.print(y+" ");
System.out.println();
}
答案 3 :(得分:0)
您的第一个块工作正常,这意味着您需要对下一个块执行相同操作。
更换for循环如下:
for (m = 0; m < array2d.length; m++) {
for (n = 0; n < array2d[m].length; n++) {
System.out.print( array2d[m][n] + " ");
}
System.out.println( "");
}