簡體   English   中英

在2D陣列中打印行和列?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM