[JAVA] Ich werde die Verschachtelung von Aussagen erklären, die Anfänger töten

Kommt ihr mit dem "for" -Satz klar? Ich war bis gestern in einem Kampf. Ich wusste nicht, was der "für" Satz, der endlos herumlief und immer wieder ging, dachte. Als ich jedoch versuchte, die JAVA-Frage zu lösen, die mir durch Versuch und Irrtum aufgefallen war, kam ein Lichtstrahl herein und der "Für" -Satz sagte:

"Lass uns Freunde sein".

für Grundlagen der Aussage

Lassen Sie uns zunächst die Grundlagen der for-Anweisung überprüfen. Die for-Anweisung besteht aus vier Teilen: Initialisierung, Bedingung, Änderung und Ausführungsinhalt </ b>.

Basic

for (Initialisieren;Bedingungen;Veränderung) {
Ausführungsinhalt
}
  • Initialisieren
  • Hier können Sie den Wert der Variablen festlegen. Programmieranfänger neigen dazu zu glauben, dass die Initialisierung 0 ist, wenn sie sie hören, aber es ist ein Fehler. Es bedeutet eigentlich, mit welchem Wert zu beginnen. Wenn die for-Anweisung gestartet wird, wird sie am Anfang </ b> nur einmal ausgeführt. Vergessen Sie nicht, den Typ der Variablen zu deklarieren
  • Bedingungen
  • Wird beendet, wenn diese Bedingung "falsch" wird. Mit anderen Worten, wird die Ausführung wiederholt, solange die Bedingungen erfüllt sind </ b>
  • Veränderung
  • Geben Sie an, wie sich die in die Bedingung geschriebenen Variablen ändern </ b>
  • Ausführungsinhalt
  • Schreiben Sie den Inhalt wie Berechnung und Ausgabe von Zeichen

Demonstration

for (int i = 0; i < 10; i++) {
  System.out.println("Hello!");
}
  • int
  • Typ int deklarieren
  • i = 0
  • Ersetzen Sie die Variable "i" durch "0"
  • i < 10
  • Wenn "i" kleiner als "10" ist, ist es "wahr". Mit anderen Worten wird der Ausführungsinhalt wiederholt, bis "i" "9" ist.
  • i++
  • i wird um 1 erhöht
  • System.out.println("Hello!")
  • Gibt die Zeichen "Hallo!" Aus

Bewegung

Lassen Sie es uns anhand der Demonstration sehen. Die Initialisierung ist das erste, was funktioniert, wenn die for-Anweisung gestartet wird. Der Wert der Variablen "i" ist "0". Die for-Anweisung bestätigt, dass i`` 0 ist, bevor mit der Bedingung fortgefahren wird. Die Bedingung ist "i <10". Zu diesem Zeitpunkt ist es dasselbe wie "0 <10". In Japanisch übersetzt kann man sagen, dass "0 kleiner als 10 ist", also ist die Bedingung "wahr". Da bestätigt wurde, dass die Bedingung "wahr" ist, wird der Teil des Ausführungsinhalts verschoben.

Wenn "System.out.println (" Hallo! ")" Ausgeführt wird, ist der nächste Schritt die Änderung. Die Änderung ist "i ++". Zu diesem Zeitpunkt ist es "0 ++", also "1". Diese "1" wechselt zu der Bedingung, die der Ausführungsvariablen zugewiesen werden soll. Zu diesem Zeitpunkt ist es "1 <10". Es ist "wahr". Deshalb werde ich wieder zum Ausführungsinhalt übergehen.

Wenn dieser Fluss viele Male fortgesetzt wird, ist die Bedingung "10 <10". Ist das "wahr"? Ist es "falsch"? Es ist "falsch". Damit ist die "for" -Anweisung abgeschlossen. Danke für deine harte Arbeit.

Der Durchfluss ist unten aufgeführt.

  1. Starten Sie die for-Anweisung
  2. Initialisierung
  3. Bedingungen
  4. Ausführungsinhalt
  5. Ändern
  6. Bedingungen (unten abgekürzt)
  7. Ende der "for" -Anweisung, wenn die Bedingung "false" ist

Verschachteln für Aussagen, die eigentlich einfach waren

Nachdem wir nun die Grundlagen der for-Anweisung kennen, ist der nächste Schritt das Verschachteln. Ich dachte, ich hätte die Verschachtelung der "for" -Anweisung irgendwie verstanden, aber als ich sie tatsächlich schrieb, verstand ich nicht, wie die obere "for" -Anweisung und das untere "for" miteinander verflochten waren. tat.

Lassen Sie uns die Bewegung der Verschachtelung sehen, während Sie das neunundneunzig Berechnungsprogramm entwirren.

Programm zur Anzeige von neunundneunzig

public class MultiplicationTable {
	public void multiply() {
		for (int x = 1; x < 10; x++) {
			for (int y = 1; y < 10; y++) {
				System.out.print(x * y);
				System.out.print(" ");
			}
				System.out.println();
		}
	}
}

Von diesem Punkt an ist der Ausdruck "äußere" für "Anweisung" anstelle von "obere" für "Anweisung" und "innere" für "Anweisung" anstelle von "untere" für "Anweisung". Dann aus der dritten Zeile. Es wird ausgeführt von "int x = 1;". Dann x <10;. Diesmal ist es "wahr", also fahren wir mit dem Ausführungsinhalt fort. Wenn Sie ein Anfänger sind, ist es leer, um zu sehen, wo die Ausführung ist, aber bitte sehen Sie die Abbildung unten.

for文ネスト.png

Die "for" -Anweisung wurde vergrößert und farbcodiert. Wie Sie daraus sehen können, ist der Ausführungsinhalt der äußeren "for" -Anweisung die innere blaue "for" -Anweisung. Der Anfangswert der inneren "for" -Anweisung (blau), "int y = 1", wird ausgeführt, um zur Bedingung zu gelangen. Da y <10;, ersetzen Sie es und es ist 1 <10. Da es "wahr" ist, wechselt es zum Ausführungsinhalt. Es ist "System.out.print (x * y)". "x" war eine Variable in der äußeren "for" -Anweisung. Zu diesem Zeitpunkt ist es "x = 1". Hier wird also "1 * 1" ausgeführt und das Ergebnis ist "1". 1 wird auf dem Bildschirm angezeigt und wechselt zur nächsten Zeile. System.out.print (" ") zeigt ein Leerzeichen mit halber Breite an.

Sobald dies erledigt ist, besteht der nächste Schritt darin, Änderungen vorzunehmen. Da es "y ++" ist, erhöht sich "y" um eins und ändert sich zu "2", und dann geht die Bedingung weiter. Da es "y <10" ist, wird es "2 <10" und es ist "wahr", so dass es wieder zum Ausführungsinhalt übergeht. Es ist "System.out.print (x * y)". Da es "1 * 2" ist, ist das Ergebnis "2" und wird auf dem Bildschirm angezeigt. In der nächsten Zeile wird auch ein Leerzeichen mit halber Breite angezeigt. Wenn der Wert von "y" durch eine solche Bewegung "9" erreicht, wird "1 2 3 4 5 6 7 8 9" auf dem Bildschirm angezeigt. Mal sehen, was danach passiert.

Mit "y ++" wird "y" zu "10" und die Bedingung verschiebt sich. Da "10 <10" "falsch" ist, wird "System.out.println ()" am Ende der inneren "for" -Anweisung (blau) ausgeführt, um eine neue Zeile zu beginnen. Dies beendet die innere "for" -Anweisung (blau) und kehrt zur äußeren "for" -Anweisung (rot) zurück. Von hier an wird es wiederholt. Wenn Sie mit 2 * 1 beginnen und zu 2 * 9 gehen, wird 3 * 1 mit einem Zeilenumbruch ausgeführt. Sehen wir uns das tatsächliche Ausführungsergebnis an.

1 2 3 4 5 6 7 8 9 
2 4 6 8 10 12 14 16 18 
3 6 9 12 15 18 21 24 27 
4 8 12 16 20 24 28 32 36 
5 10 15 20 25 30 35 40 45 
6 12 18 24 30 36 42 48 54 
7 14 21 28 35 42 49 56 63 
8 16 24 32 40 48 56 64 72 
9 18 27 36 45 54 63 72 81 

Dies ist das Verhalten des neunundneunzig Programms unter Verwendung der Verschachtelung von "for" -Anweisungen. Es ist leicht zu entwirren. Dabei habe ich eine Frage gestellt, die ich am Anfang gestellt habe. Das Ergebnis ist hier.

■
■■
■■■
■■■■
■■■■■
■■■■■■
■■■■■■■
■■■■■■■■
■■■■■■■■■
■■■■■■■■■■
■■■■■■■■■■
■■■■■■■■■
■■■■■■■■
■■■■■■■
■■■■■■
■■■■■
■■■■
■■■
■■
■

Ich verwende die Anweisung "for", um die Anzahl der "■" pro Zeile zu erhöhen und ein Dreieck auszudrücken. Ich habe eine Form erstellt, die um eins zunimmt, und eine Form, die um eins abnimmt, und oben und unten zusammen angezeigt. Unten ist das Programm.

public class TriangleTop {
	public void traiangle() {
		for (int x = 0; x < 10; x++) {
			for (int y = 0; y < x+1; y++) {
				System.out.print("■");
			}
				System.out.println();
		}
	}
}
public class TriangleBottom {
	public void traiangleReverse() {
		for (int x = 0; x < 10; x++) {
			for (int y = 10; y > x; y--) {
				System.out.print("■");
			}
				System.out.println();
		}
	}
}

Wenn Sie so weit gelesen haben, müssen Sie es nicht mehr erklären.

Nachwort

Für Anfänger ist es schwierig, das Verhalten der Verschachtelung von "for" -Anweisungen sofort zu verstehen. Es wird empfohlen, dass Sie nicht nur darauf schauen, sondern zuerst versuchen, Fehler mit Ihren eigenen Händen zu machen. Ich wollte ein Dreieck machen, das nach links gedreht wurde, also versuchte ich es mit einem Quadrat, aber ich gab auf, weil ich keine Rohlinge mit halber Breite kontinuierlich anzeigen konnte. Ich möchte eines Tages ein einfaches Bild mit dem Satz "for" zeichnen.

Ist es für Qiita auch in Ordnung, so etwas zu posten?

Recommended Posts