Сначала определим результат вывода:

Итак, как мы можем этого добиться?
1. Сначала проанализируем структуру изображения
Мы видим, что изображение состоит из 5 строк. Итак, можем ли мы создать оператор цикла for, чтобы задать 5 строк? Ответ — да.
for(int i = 1 ;i <= 5 ;i++ ){
}
Таким образом, мы создали блок кода цикла for, который выполняется 5 раз и является самым внешним циклом.
2. Затем проанализируем, из чего состоит изображение. Мы можем разделить изображение на следующие части: /p>

Мы можем разделить изображение на эти три треугольника.
3. Создайте треугольник № 1 — пустой треугольник
Как видите, первая строка выводит 4 пробела, вторая строка выводит 3 пробела, третья строка выводит 2, четвертая строка выводит 1, а в пятой строке их нет.
Из этой закономерности видно, что их количество последовательно уменьшается. Итак, как нам это реализовать?
Можно представить, что от 1 до 5 между ними находятся четыре числа; от 2 до 5 — 3 числа; от 3 до 5...
Можно ли применить этот принцип? Конечно, ответ — да. Так как же это реализовать? Взгляните на код:
for(int i = 1;i<=5 ;i++) {
for(int j = 5; j >= i ; j--)//建立1号图形
System.out.print(" ");
System.out.println();
}
Первый оператор for — это только что определённый оператор цикла с пятью итерациями.
Теперь проанализируем второй цикл for:
Сначала определим переменную int j и присвоим ей значение 5.
Затем подумаем: поскольку мы хотим сократить расстояние, j уменьшается на 1 при каждой итерации цикла, что как раз соответствует нашему требованию:
В первом внешнем цикле i=1, j=5, поэтому выполняется условие j>=i, затем выводится пробел, затем j-1, теперь j равно 4, условие j>=i выполняется, и выводится ещё раз.
……
Когда j=0, условие j>=i не выполняется, и происходит выход из внутреннего цикла.
Теперь управление доходит до System.out.println(); и переходит на новую строку.
Теперь возвращаемся к внешнему циклу, i++, i становится 2, условие i<=5 выполняется, и происходит вход во внутренний цикл.
Устанавливаем j=5, условие j>=i выполняется, выводим пробел, j-1.
Теперь j равно 4, условие j>=i выполняется, выводим пробел, j-1.
……
Когда j=1, условие j>=i становится неверным, выходим из внутреннего цикла, затем переходим на новую строку.
Затем i+1, и затем снова входим во внутренний цикл...
И так далее, образуется перевёрнутый треугольник из четырёх строк, и создаётся шаблон № 1.
4. Создайте шаблон № 2. Принцип точно такой же, как у шаблона № 1, но только наоборот.
for(int i = 1 ;i<=5 ;i++){
for(int j = 5; j >= i ; j--)//建立1号图形
System.out.print(" ");
for(int j = 1; j <= i; j++)//建立2号图形
System.out.print("*");
System.out.println();
}
Это то же самое, что и создание шаблона № 1; вы можете понять это сами. Таким образом создаётся шаблон № 2.
5. Создайте шаблон № 3
for(int i = 1; i <= 5; i++){
for(int j = 5 ;i <= j; j--)//建立1号图形
System.out.print(" ");
for(int j = 1; j <= i; j++)//建立2号图形
System.out.print("*");
for(int j = 1; j < i; j ++)//建立3号图形
System.out.print("*");
}Аналогично, как и для шаблонов № 1 и № 2, принцип создания шаблона № 3 тот же.
Но обратите внимание на одну вещь: шаблон № 3 не выводится в первой строке, поэтому нам нужно отсечь его в первом внешнем цикле и позволить ему выводиться во втором внешнем цикле.
Следовательно, на этот раз условие — j < i, без равенства.
Полный исходный код:
Электронная почта автора: [email protected]