Объявление инкремента Java в цикле for - PullRequest
0 голосов
/ 16 сентября 2018
public class F2E12 {

    public static final int DIM = 5;

    public static void main(String[] args) {
        printMatrix(DIM);

    }

    public static void printMatrix(int n) {
        int i = 0;
        int j = 0;
        for(;i<=n;i++) {
            for(;j<=n;j++) {
                System.out.print(j + " ");
            }
            System.out.print("\n");

        }
    }
}

Я хочу напечатать матрицу, которая увеличивает первое число каждой строки на единицу.Приведенный выше код должен выдавать:

  1. 0 1 2 3 4 5
  2. 1 0 1 2 3 4
  3. 2 1 0 1 2 3
  4. 3 2 1 0 3 4
  5. 4 3 2 1 0 1
  6. 5 4 3 2 1 0

Вместо этого он печатает."0 1 2 3 4 5"

Ответы [ 2 ]

0 голосов
/ 16 сентября 2018
public static void printMatrix(int n) {
    for (int i = 0; i <= n; i++) {
        for (int j = 0; j <= n; j++) {
            System.out.print(Math.abs(j - i) + " ");
        }
        System.out.print("\n");
    }
}
0 голосов
/ 16 сентября 2018

Ваш текущий код не работает, потому что j достигает n на первой итерации i.Вы можете переместить j в цикл как

// int j = 0;
for (; i <= n; i++) {
    int j = 0;
    for (; j <= n; j++) {

, чтобы исправить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...