Dies ist ein Problem, das mir mein Senior in der Firma als Neuling gegeben hat, um mit der for-Anweisung in Java verschiedene Dreiecke zu erstellen. Dies ist Java, aber Sie können es mit einer einfachen for-Anweisung erstellen. Probieren Sie daher auch andere Sprachen aus.
Die zu behandelnde Form entspricht der Abbildung unten.
・ Diejenigen, die Programmieren studieren ・ Diejenigen, die kürzlich Ingenieure geworden sind ・ Diejenigen, die Java lernen möchten
public class Main {
public static void main(String[] args) {
int max = 5;
String star = "*";
for (int i = 0; i < max; i++) {
for(int j = 0; j < max-i; j++) {
System.out.print(" ");
}
for(int k = 0; k <= (i*2); k++) {
System.out.print(star);
}
System.out.println("\n");
}
}
}
-Definieren Sie die Höhe des Dreiecks in der ersten for-Anweisung (i) (diesmal wird die Variable max = 5 im Voraus festgelegt). -Definieren Sie ein Leerzeichen ("") in der zweiten für Anweisung (j). Da es sich um ein Dreieck handelt, sind die Leerzeichen zunächst das Maximum, und die Leerzeichen werden allmählich umgekehrt proportional zur Anzahl von * reduziert. Der bedingte Ausdruck ist j <max-i; -Ausgabe * mit der dritten for-Anweisung (k). ・ Schließlich beginnt println jedes Mal, wenn eine Schleife endet, eine neue Zeile. (Wenn Sie die Linie nicht unterbrechen, wird sie horizontal ausgegeben.)
public class Main {
public static void main(String[] args) {
int max = 5;
String star = "*";
for (int i = 0; i < max; i++) {
for(int j = 0; j < i; j++) {
System.out.print(" ");
}
for(int k = 0; k <= max*2-(i*2)-2; k++){
System.out.print(star);
}
System.out.println("\n");
}
}
}
・ Definieren Sie die Höhe des Dreiecks in der ersten for-Anweisung (i). -Definieren Sie ein Leerzeichen ("") in der zweiten für Anweisung (j). Im Gegensatz zu ① werde ich es diesmal einfach um 1 erhöhen. -Ausgabe * mit der dritten for-Anweisung (k).
public class Main {
public static void main(String[] args) {
int max = 5;
String star = "*";
for (int i = 0; i < max; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(star);
}
System.out.println("\n");
}
}
}
Dies ist wahrscheinlich die einfachste.
・ Definieren Sie die Höhe des Dreiecks in der ersten for-Anweisung (i). -Ausgabe *, so dass sie für Anweisung (j) in der Sekunde um eins erhöht wird.
public class Main {
public static void main(String[] args) {
int max = 5;
String star = "*";
for (int i = 0; i < max; i++) {
for (int j = 0; j < max-i; j++) {
System.out.print(" ");
}
for (int k = 0; k <= i; k++){
System.out.print(star);
}
System.out.println("\n");
}
}
}
Ich denke, das ist einfach, wenn man ein umgekehrtes Dreieck machen kann.
・ Definieren Sie die Höhe des Dreiecks in der ersten for-Anweisung (i). -Definieren Sie ein Leerzeichen ("") in der zweiten für Anweisung (j). Zunächst ist der Rohling das Maximum, und die Anzahl der Rohlinge wird umgekehrt proportional zur Anzahl der * allmählich verringert. Der bedingte Ausdruck ist j <max-i; -Ausgabe * mit der dritten for-Anweisung (k). Da es eins nach dem anderen erhöht wird, ist k <= i.
public class Main {
public static void main(String[] args) {
int max = 5;
String star = "*";
for (int i = 0; i < max; i++) {
for (int j = 0; j < max-i; j++) {
System.out.print(" ");
}
for (int k = 0; k <= ((i-1)*2); k++) {
System.out.print(star);
}
System.out.println("\n");
if (i == 4){
for (int a = 0; a < max; a++) {
for(int b = 0; b < a; b++) {
System.out.print(" ");
}
for(int c = 0; c <= max*2-(a*2)-2; c++){
System.out.print(star);
}
System.out.println("\n");
}
}
}
}
}
Ich dachte eine Weile darüber nach, dies zu lösen. Infolgedessen werden mit der if-Anweisung sowohl reguläre als auch invertierte Dreiecke verwendet Ich habe die Hand der Ausgabe benutzt, aber ich denke, es gibt wahrscheinlich einen besseren Weg ...
Geben Sie zunächst 1 bis 7 * nach der Methode eines regulären Dreiecks aus und stellen Sie es durch ein umgekehrtes Dreieck von 9 bis 1 * dar. Stellen wir if (i == 4) ein und wechseln Sie zwischen ▲ und ▼, wenn sich die i-Schleife viermal dreht.
Der Rest kann gelöst werden, indem die Codes ① bis ④ wiederverwendet werden.
Ich habe zusammengefasst, wie verschiedene Formen mit der for-Anweisung ausgegeben werden. Die for-Anweisung ist in der Praxis häufig und es wird üblich sein, über die Struktur des Codes nachzudenken. Versuchen Sie es also bitte (^^) /
Recommended Posts