Bestimmen wir zunächst unser Ausgabeergebnis:

Wie können wir das also erreichen?
1. Zuerst analysieren wir die Struktur der Grafik
Wir können sehen, dass die Grafik 5 Zeilen hat. Können wir also eine for-Schleifenanweisung erstellen, um sie auf 5 Zeilen zu steuern? Die Antwort ist ja.
for(int i = 1 ;i <= 5 ;i++ ){
}
Auf diese Weise haben wir einen for-Schleifen-Codeblock erstellt, der 5-mal durchläuft, was die äußerste Schleife ist.
2. Analysieren wir dann, wie die Grafik aufgebaut ist. Wir können die Grafik in die folgenden Teile aufteilen: /p>

Wir können die Grafik in diese drei Dreiecke aufteilen.
3. Erstellen Sie Dreieck Nr. 1, das Leerzeichen-Dreieck
Wie Sie sehen können, gibt die erste Zeile 4 Leerzeichen aus, die zweite Zeile 3 Leerzeichen, die dritte Zeile 2, die vierte Zeile 1 und die fünfte Zeile keine.
An diesem Muster können wir erkennen, dass es sukzessive abnimmt. Wie setzen wir das also um?
Wir können uns vorstellen, dass zwischen 1 und 5 vier Zahlen liegen; zwischen 2 und 5 sind es 3 Zahlen; zwischen 3 und 5 ...
Können wir dieses Prinzip anwenden? Natürlich ist die Antwort ja. Wie setzt man es also um? Schauen wir uns den Code an:
for(int i = 1;i<=5 ;i++) {
for(int j = 5; j >= i ; j--)//建立1号图形
System.out.print(" ");
System.out.println();
}
Die erste for-Anweisung ist die gerade definierte Schleifenanweisung mit fünf Iterationen.
Nun analysieren wir die zweite for-Schleife:
Zuerst definieren wir eine int-Variable j und weisen ihr den Wert 5 zu.
Dann überlegen wir: Da wir den Abstand verkürzen wollen, wird j bei jeder Schleife um 1 dekrementiert, was genau unserer Anforderung entspricht:
In der ersten äußeren Schleife ist i=1, j=5, also ist die Bedingung j>=i erfüllt, dann wird ein Leerzeichen ausgegeben, dann j-1, jetzt ist j 4, j>=i ist erfüllt, und es wird erneut ausgegeben.
……
Bis j=0 ist j>=i nicht erfüllt, und sie bricht aus der inneren Schleife aus.
Jetzt erreicht es System.out.println(); und geht in eine neue Zeile über.
Jetzt zurück zur äußeren Schleife: i++, i wird 2, erfüllt i<=5, und tritt in die innere Schleife ein.
Setze j=5, j>=i ist erfüllt, gib ein Leerzeichen aus, j-1.
j ist jetzt 4, j>=i ist erfüllt, gib ein Leerzeichen aus, j-1.
……
Wenn j=1 ist, ist j>=i nicht wahr; brich aus der inneren Schleife aus und gehe dann in eine neue Zeile.
Dann i+1, und dann wieder in die innere Schleife eintreten...
Und so weiter, dies bildet ein umgekehrtes Dreieck mit vier Zeilen, und Muster Nr. 1 wird erzeugt.
4. Erzeuge Muster Nr. 2. Das Prinzip ist genau dasselbe wie bei Muster Nr. 1, nur genau umgekehrt.
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();
}
Es ist dasselbe wie beim Erzeugen von Muster Nr. 1; das kannst du selbst nachvollziehen. Auf diese Weise wird Muster Nr. 2 erzeugt.
5. Erzeuge Muster Nr. 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("*");
}Ähnlich, genau wie bei den Mustern Nr. 1 und Nr. 2, ist das Prinzip zum Erzeugen von Muster Nr. 3 dasselbe.
Aber beachte eines: Muster Nr. 3 wird nicht in der ersten Zeile ausgegeben, daher müssen wir es in der ersten äußeren Schleife abschneiden und es in der zweiten äußeren Schleife ausgeben lassen.
Daher ist die Bedingung diesmal j < i, wobei die Gleichheit entfernt wurde.
Vollständiger Quellcode:
E-Mail des Mitwirkenden: [email protected]