Я хочу создать двумерный массив, используя цикл for, и я хочу присваивать значения с шагом 10. Итак, вот что у меня есть, и я не получаю желаемый результат ...

package ~/TwoDimensionalArray;

import java.util.Scanner;

public class TwoDimensionalArray {

    public static void main(String[] args) {

        int rows = 3;
        int columns = 3;

        int[][] array = new int[rows][columns];

        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < columns; j++) {
                array[i][j] = j * 10;
                System.out.println(array[i][j]);
            }
        }

    }

}

Вот то, что я хочу, чтобы мой вывод был:

0   30  60
10  40  70
20  50  80

Process finished with exit code 0

Вот что я продолжаю получать:

0
10
20
0
10
20
0
10
20

Process finished with exit code 0
0
YosemiteWarrior05 22 Июл 2020 в 03:21

3 ответа

Лучший ответ
  • Вы не должны печатать новую строку после каждого числа.
  • Вы должны печатать новую строку только после печати каждой строки, то есть после каждой итерации внешнего цикла.
  • Вы также должны печатать символ табуляции после каждого числа, чтобы числа не слипались
  • Вы должны вычислить число в строке i столбца j, используя формулу j * 10 * rows + i * 10. Это дает вам правильный номер в каждой позиции.
int rows = 3;
int columns = 3;

int[][] array = new int[rows][columns];

for (int i = 0; i < rows; i++) {
    for (int j = 0; j < columns; j++) {
        array[i][j] = j * 10 * rows + i * 10;
        System.out.print(array[i][j]); // "print" doesn't print a new line
        System.out.print("\t"); // print a tab!
    }
    System.out.println(); // print a new line here
}
1
Sweeper 22 Июл 2020 в 00:34

Может это то, что ты хочешь

public class TempTest {
    static final int ROW = 3;
    static final int COLUMN = 3;

    public static void main(String[] args) {
        int[][] array = new int[ROW][COLUMN];
        // assign values to array
        for (int i = 0; i < ROW; i++) {
            for (int j = 0; j < COLUMN; j++) {
                array[i][j] = 10 * (i + 3 * j);
            }
        }
        // display array
        for (int i = 0; i < ROW; i++) {
            for (int j = 0; j < COLUMN; j++) {
                System.out.print(array[i][j]);
                System.out.print(' ');
            }
            System.out.println();
        }
    }
}

И результат будет

0 30 60 
10 40 70 
20 50 80 

Я думаю, что вы не знакомы с разницей между print и println, последний добавит новую строку. Попробуйте узнать больше о JAVA, удачи!

0
NIL 22 Июл 2020 в 00:34

Попробуй это.

int rows = 3;
int columns = 3;

int[][] array = new int[rows][columns];

for (int i = 0, v = 0; i < rows; i++) {
    for (int j = 0; j < columns; j++, v += 10) {
        array[i][j] = v;
        System.out.print(array[i][j] + "\t");
    }
    System.out.println();
}
0
saka1029 22 Июл 2020 в 03:42