Проблемы с пониманием частей этого кода с помощью циклов for? - PullRequest
0 голосов
/ 27 января 2020
public class PA4 {
    public static void main(String[] args) {
        for (int line = 1; line <= 6; line++) {
            for (int j = 1; j <= (line - 1); j++) {
                System.out.print(".");
        }
        System.out.print(line);
        for (int j = (line + 1); j <= 6; j++) {
            System.out.print(".");
        }

        System.out.println();
    }
}
}

Этот код производит следующие выходные данные:

1 .....

.2 ....

.. 3 ...

... 4 ..

.... 5.

..... 6

Я понимаю первый l oop и как он печатает точки, вычитая по одной из каждой строки, но я не могу понять, как работает вторая l oop и как она печатает точки, или как присвоение "j" значению "line + 1" делает то, что делает.

Ответы [ 2 ]

1 голос
/ 27 января 2020

Может быть, это понятнее; он делает то же самое.

public class PA4 {
    public static void main(String[] args) {
        for (int line = 1; line <= 6; line++) {
            for (int j = 1; j <= 6; j++) {
                if (j == line)
                    System.out.print(line);
                else
                    System.out.print(".");
            }
        System.out.println();
        }
    }
}

Ваша внутренняя часть (две петли плюс) вместе всегда считает до 6, печатая точки и одно число. Но они делают это, считая до строки 1, затем печатая число, затем печатая больше точек, считая сразу после числа до 6. Я сделал это выше в одном l oop, но это то же самое предмет.

0 голосов
/ 27 января 2020

Исправленный отступ

for (int line = 1; line <= 6; line++) {
    for (int j = 1; j <= (line - 1); j++) {
        System.out.print(".");
    }
    System.out.print(line);
    for (int j = (line + 1); j <= 6; j++) {
        System.out.print(".");
    }

    System.out.println();
}

с заменой на жестко заданное значение

// for three it would be
for (int j = 1; j <= (2); j++) {  // personally I would do j < 3
    System.out.print(".");
}
System.out.print(3);
for (int j = (4); j <= 6; j++) {
    System.out.print(".");
}
System.out.println();   

выход

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