[英]Printing rows and columns in a 2D Array?
我在打印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] );
}
在第一個示例中,您有兩個循環。 一個用於行,一個用於列。
在第二個示例中,只有一個循環。
當您做不同的事情時,為什么還要期待同樣的事情發生?
您看,關於編程的事情是:細節很重要。 您無需寫下一些代碼 ,而是要仔細考慮並寫下所需的代碼。
最后:您不應該對數組的維進行硬編碼-從這個意義上講,您的第二個循環更好,因為它使用array.length而不是手動分配的值。
您為什么不像第一個那樣打印第二個?
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
}
}
如果初始化數組中的任何元素,則數組中的所有元素都將初始化為零。 因此,無需對以上代碼進行循環。
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();
}
您的第一個程序塊工作正常,這意味着您需要遵循相同的步驟來執行下一個程序塊。
替換如下所示的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( "");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.