#java
#java
Вопрос:
Я изучаю кодирование, и сегодня я попробовал эту программу
for (cnt = 1; cnt <= 6; cnt ) {
for (int j = cnt; j <= 6; j ) {
System.out.print("*");
}
System.out.println();
}
и я не понимаю, как он печатает обратную пирамиду
******
*****
****
***
**
*
Не могли бы вы мне объяснить, пожалуйста?
Комментарии:
1.
j
инициализируется значениемcnt
. Каждый разcnt
увеличивается, это означает, чтоj
инициализируется более высоким значением, поэтому для достижения требуется меньше итераций6
.
Ответ №1:
Когда cnt
= 1
j = 1 => Print * => The line becomes *
j = 2 => Print * => The line becomes **
j = 3 => Print * => The line becomes ***
j = 4 => Print * => The line becomes ****
j = 5 => Print * => The line becomes *****
j = 6 => Print * => The line becomes ******
After this line breaks
Когда cnt
= 2
j = 2 => Print * => The line becomes *
j = 3 => Print * => The line becomes **
j = 4 => Print * => The line becomes ***
j = 5 => Print * => The line becomes ****
j = 6 => Print * => The line becomes *****
After this line breaks
Таким образом, после двух итераций cnt
вы получаете следующий шаблон:
******
*****
Таким образом, итерации cnt
будут увеличиваться 6
, и вы получите шаблон обратной пирамиды
Ответ №2:
Ваш внешний цикл создает строки. Внутренний цикл печатает символы j-cnt *. Поскольку cnt увеличивается с каждой печатаемой строкой, j-cnt уменьшается с каждой итерацией внешнего цикла. Таким образом, с каждой строкой он печатает все меньше и меньше символов.
Ответ №3:
На первой итерации внешнего цикла cnt
значение равно 1
, j
во внутреннем цикле присваивается значение cnt
, которое равно 1
, поэтому внутренний цикл будет повторяться от 1
6
включительно, это шесть звезд.
На второй итерации внешнего цикла cnt
значение равно 2
, j
во внутреннем цикле присваивается значение cnt
, которое равно 2
, поэтому внутренний цикл будет повторяться от 2
6
включительно, это пять звезд.
На третьей итерации внешнего цикла cnt
значение равно 3
, j
во внутреннем цикле присваивается значение cnt
, которое равно 3
, поэтому внутренний цикл будет повторяться от 3
6
включительно, это четыре звезды.
…
На шестой итерации внешнего цикла cnt
значение равно 6
, j
во внутреннем цикле присваивается значение cnt
, которое равно 6
, поэтому внутренний цикл будет повторяться от 6
до 6
включительно, это одна звезда.
Ответ №4:
Это потому int j = cnt
, что where cnt
увеличивается, поэтому второй цикл будет повторяться меньше по мере cnt
увеличения. Подумайте об этом
, когда cnt = 1
второй цикл будет печатать 6 раз
, когда cnt = 2
второй цикл будет печатать на один раз меньше, чем раньше. И так далее. Итак, это то, что он собирается печатать:
******
*****
****
***
**
*
количество *
уменьшений на единицу в каждой строке.