Печать левого треугольника на Java - программа работает, но почему? - PullRequest
0 голосов
/ 13 октября 2018

Я хочу иметь программу, которая печатает левые треугольники определенного размера, в зависимости от ввода пользователя.Поэтому, если я введу 5, это должно вывести следующее:

*
**
***
****
*****

Мне удалось заставить программу напечатать правильное утверждение, но я не понимаю, как именно оно работает.В частности, когда первый цикл повторяется i=0, а i=0 также, когда второй цикл повторяется в первый раз.Но когда запускается второй цикл, j также равен нулю, потому что он был инициализирован с нуля.Но это будет означать 0<0 для первой итерации второго цикла.Почему моя программа по-прежнему работает правильно, несмотря на это?Что здесь происходит?

Мой код:

 public static void main(String[] args) { 
    printLeftTriange(0);

  }

  public static void printLeftTriange(int a) {

    for (int i=0; i<a+1 ; i++) {
      for (int j=0; j<i; j++) {
        System.out.print("*");
      }
      System.out.println("");
    }
  }

1 Ответ

0 голосов
/ 13 октября 2018

При первом запуске цикла i = 0, что означает, что 2-й цикл for не будет запущен и * не будет напечатан.Таким образом, по сути, когда я = 0, он просто печатает пустую строку.Однако, поскольку ваш первый цикл for - это + 1 , он печатает правильное количество строк.

Например, если вы введете 3, будет напечатано:

пустая строка (i = 0)

* (i = 1)

** (i = 2)

*** (i =3)

Чтобы убедиться, что пустая строка не напечатана, просто заставьте меня начать с 1.

...