两维阵列打印行

时间:2018-01-22 23:37:36

标签: java arrays 2d

好的,所以我需要从1到15的每一行打印10行,从1到10行和15列,在数字之间用数字排成一行。第二个子程序自己运行,但只打印0,第一个子程序是我试图给行和列赋值,但我知道我做错了。任何帮助表示赞赏

static int ROWS = 10;
static int COLUMNS = 15;
static int[][] myArray = new int[10][15];
static int i;      // loops through the number of rows
static int j;      // loops through the number of columns  
static int num1 = 0;
static int num2 = 0;

    public static void vlueArray() {

    for (i = 1; i < ROWS; i++) {
       myArray[i][j]= num1++;
        for (j = 1; j < COLUMNS; j++) {
          myArray[i][j] = num2++;

          System.out.print(myArray[i][j]);
        }
        System.out.println("");
    }
}



public static void display2DArray() {

    for (i = 0; i < ROWS; i++) {

        for (j = 0; j < COLUMNS; j++) {

            System.out.print(myArray[i][j] + " | ");
        }
        System.out.println("");
        System.out.println("_____________________________________________________________");
    }
}

2 个答案:

答案 0 :(得分:0)

你没有初始化数组中的元素,这就是你显示零的原因,因为即使你没有初始化它们,int值总是由编译器初始化。 int的默认值为0。

像这样初始化你的2D数组:

int[][] myArray = new int[10][15]{{2,3},{3,5},..........};

希望这有帮助。

答案 1 :(得分:0)

这里有两个问题。首先,你没有很好的语法,虽然你设置的方式确实有效,但是让我给你一些关于设置的提示,然后我们可以很容易地解决你的问题。

这里有一些一般规则:

  • 您不必在类变量中初始化循环变量,只需在循环结构中初始化它们(我将在下面向您展示)。
  • 使用ROWCOLUMN声明您的数组,它有助于确保数组长度值始终相同。
  • 您在vlueArray中创建值的循环不正确。我将向您展示一些正确的格式,以便将这些值放在下面。
  • 初始化数组时,数组中的每个位置(如果是整数数组)将自动赋值为零。您可以更改此设置,但由于第一种方法无法正确运行,因此在不更改数组的情况下打印数组中的值将为零提供数组。

现在,您似乎想在10个不同的行上只有1到15个。要做到这一点,你只需要一个变量,所以我的响应代码只有一个变量,但如果这不是你想要的,我很乐意帮助你得到一个不同的设置。

现在您已经掌握了一些背景信息,让我们为您提供一些有用的代码。

static int ROWS = 10; //Your row count.
static int COLUMNS = 15; //Your column count.
static int num = 0; //Our number.

//Using the constants to make sure rows and columns values match everywhere.
static int[][] myArray = new int[ROWS][COLUMNS];

public static void fillArray() {

//Initializing the loop variables in the loop is the common practice.
//Also, since the first index is zero, the loop needs to start at 0, not 1.
for (int i = 0; i < ROWS; i++) {
    for (int j = 0; j < COLUMNS; j++) {
        //If you want 0 - 14, use `num++`.
        //If you want 1-15, use `++num`.
        myArray[i][j] = num++;
    }
    num = 0; //This sets num back to zero after cycling through a whole row.
}

//Your display method works just fine.
public static void display2DArray() {

    for (i = 0; i < ROWS; i++) {

        for (j = 0; j < COLUMNS; j++) {

            System.out.print(myArray[i][j] + " | ");
        }
        System.out.println("");
        System.out.println("_____________________________________________________________");
}