[Java] Verzweigen und Wiederholen

if-Anweisung

: sonnig: Kann verzweigen Geben Sie die Verzweigungsbedingung in () dahinter ein: sonnig: wenn : sunny: Besteht aus bedingten Ausdrücken und Blöcken

Zum Beispiel können Sie verzweigen ...

Hast du zu hause brot → Ja Lass es uns rösten und essen! → Nein Lass uns in die Bäckerei gehen, um zu kaufen!

Es soll in der Lage sein, den Programmiervorgang abhängig von den Bedingungen wie zu ändern.

Beispiel.java


public class Main {
	public static void main(String[] args) {
	    boolean bread = true;
	    if (bread == true) {
	        System.out.println("Lass es uns rösten und essen!");
	    } else {
	        System.out.println("Lass uns in die Bäckerei gehen, um zu kaufen!");
	    }
	}
}

Geben Sie true (oder false ist OK) in das Variablenbrot vom booleschen Typ ein, das den booleschen Wert in der dritten Zeile darstellt.

(Brot == wahr) dahinter, wenn in der 4. Zeile die Bedingung für die Verzweigung beschrieben wird. In diesem Fall, wenn true dem variablen Brot zugewiesen ist ...

Wenn die 5. Zeile wahr ist, führen Sie diese Art der Verarbeitung durch.

Wenn sonst in der 6. Zeile etwas anderes ist (in diesem Fall ist es nicht wahr) Bitte führen Sie diese Art der Verarbeitung in der 7. Zeile durch.

Konsole.


Lass es uns rösten und essen!

Dieses Mal, da true in der 3. Zeile zugewiesen ist, wird es wie folgt: smile: Wenn Sie die dritte Zeile von wahr in falsch ändern ...

Konsole.


Lass uns in die Bäckerei gehen, um zu kaufen!

Wird angezeigt: Lächeln:

wenn nur Syntax

: sunny: Wenn die Bedingung erfüllt ist, wird der angegebene Prozess ausgeführt, und wenn er nicht erfüllt ist, wird nichts unternommen.

Beispiel.java


public class Main {
	public static void main(String[] args) {
		int number = 5;
		if (number == 5) {
		    System.out.println("Gorira!");
		}
    }
}

Wenn in diesem Fall der Variablennummer 5 zugewiesen ist,

Gorira!

Wird angezeigt und wenn eine andere Nummer zugewiesen ist, wird nichts unternommen.

if-else if-else-Syntax

: sunny: Eine if-Anweisung kann zu mehr als zwei Routen verzweigen.

Beispiel.java


public class Main {
	public static void main(String[] args) {
		int number = 1;
		if (number == 1) {
		    System.out.println("Erdbeere!");
		} else if (number == 2) {
		    System.out.println("Karotte!");
		} else if (number == 3) {
		    System.out.println("Sandalen!");
		} else {
		    System.out.println("weiß nicht");
		}
    }
}

Wenn der Variablennummer 1 zugewiesen ist, wird Ichigo! Wird ausgegeben, und wenn es 2 ist, ist es Karotte! Wenn es 3 ist, Sandalen! Andere Zahlen werden als "Ich weiß nicht" angezeigt. Ich konnte mit else auf mehr als zwei Routen verzweigen, wenn: smile:

switch-Anweisung

: sunny: Ein Ausdruck, der vergleicht, ob die linke und die rechte Seite aller bedingten Ausdrücke übereinstimmen, z. B. Variable == Wert, Variable == Variable. Geben Sie den Variablennamen anstelle des Ausdrucks in () nach: sunny: switch ein : sunny: case value ::: ist ein Doppelpunkt. Verwechseln Sie ihn also nicht mit einem Semikolon. Geben Sie die Pause ganz am Ende der Verarbeitung ein, nachdem: sunny: case : sunny: default hat die gleiche Bedeutung wie sonst in der if-Anweisung und was zu tun ist, wenn die Bedingung nicht erfüllt ist. Es kann weggelassen werden, wenn die Verarbeitung nicht zusammen mit else erforderlich ist. Pause kann auch weggelassen werden.

Sie können die in der if-else if-else-Syntax verwendete Programmierung früher in eine switch-Anweisung umschreiben: smile:

Beispiel.java


public class Main {
	public static void main(String[] args) {
		int number = 1;
		switch(number) {
		    case 1:
    		    System.out.println("Erdbeere!");
    		    break;
		    case 2:
    		    System.out.println("Karotte!");
    		    break;
		    case 3:
    		    System.out.println("Sandalen!");
    		    break;
    		default:
    		    System.out.println("weiß nicht");
		}
    }
}

Im Vergleich zur if-Anweisung stehen nach dem else if weniger {} und (), sodass es sehr leicht zu erkennen ist: smile:

Am Ende eines jeden Falles gibt es immer eine Pause, aber was ist, wenn ich vergesse, sie auszufüllen? : Denken:

Beispiel.java


public class Main {
	public static void main(String[] args) {
		int number = 1;
		switch(number) {
		    case 1:
    		    System.out.println("Erdbeere!");
		    case 2:
    		    System.out.println("Karotte!");
    		    break;
		    case 3:
    		    System.out.println("Sandalen!");
    		    break;
    		default:
    		    System.out.println("weiß nicht");
		}
    }
}

Ich habe es gewagt, die Pause in Fall 1 in der 7. Zeile zu löschen. Was wird passieren?

Konsole.


Erdbeere!
Karotte!

Es wird nicht nur Fall 1 angezeigt, sondern auch Fall 2. ..

Die switch-Anweisung ist eine Anweisung, die die Verarbeitung zur Fallbezeichnung überspringt, die der Variablen in () entspricht. Daher tritt kein Kompilierungsfehler auf. Wenn Sie keine Pause einlegen und den Vorgang stoppen, wird das Programm im nächsten Fall ausgeführt.

Wagen Sie es nicht, eine Pause zu schreiben

Sie können auch die Eigenschaft nutzen, dass die Verarbeitung erst beendet wird, wenn Sie diese Pause ausfüllen.

Beispiel.java


public class Main {
	public static void main(String[] args) {
		int rank = 1;
		switch(rank) {
		    case 1:
    		    System.out.println("Exzellenz!");
    		    break;
		    case 2:
		    case 3:
    		case 4:
    		    System.out.println("Gewöhnlich");
    		    break;
    		case 5:
    		    System.out.println("Hart arbeiten!");
    		    break;
		}
    }
}

Wenn Rang 1 ist, wird es als ausgezeichnet angezeigt! Wenn die Ränge 2 bis 4 alle gleich sind, werden die Zeichen "normal" ausgegeben. Ich habe es gewagt, die Unterbrechungen und Anweisungen in Fall 2 und Fall 3 zu löschen, damit der Prozess zu Fall 4 springt.

Dadurch wurde der Code besser lesbar und leichter zu lesen: smile:

while-Anweisung

: sunny: Kann iterative (Schleifen-) Verarbeitung durchführen : sunny: Geben Sie die Bedingung ein, um in () hinterher weiter zu wiederholen : sunny: Besteht aus bedingten Ausdrücken und Blöcken

Beispiel.java


public class Main {
	public static void main(String[] args) {
		int day = 1;
        while (day <= 7) {
            System.out.println(day + "Tag");
            day++;
        }
        System.out.println("Eine Woche ist vergangen");
    }
}

Ersetzen Sie den variablen Tag in der dritten Zeile durch 1.

Der (Tag <= 7) Rückstand in der 4. Zeile ist die Bedingung, um die Wiederholung fortzusetzen. Wiederholen Sie in diesem Fall die Verarbeitung in der 5. bis 6. Zeile, bis der Wert des variablen Tages 7 wird. Derzeit ist 1 zugewiesen.

Die 5. Zeile wird als 1. Tag angezeigt, da dem variablen Tag 1 zugewiesen ist. Fügen Sie in der 6. Zeile, Tag ++;, 1 zum variablen Tag hinzu, um 2 zu erhalten. Gehen Sie zurück zu, während Sie sich in der 4. Zeile befinden.

Da wir dem variablen Tag zuvor 1 hinzugefügt haben, wird dem variablen Tag 2 zugewiesen. (Tag <= 7) Das heißt, 2 <= 7 und der bedingte Ausdruck wird angewendet, so dass die Verarbeitung der 5. bis 6. Zeile wiederholt wird.

Da dem variablen Tag in der 5. Zeile 2 zugewiesen ist, wird er als 2. Tag angezeigt. Fügen Sie in Tag ++ in der 6. Zeile 1 zum variablen Tag hinzu, um 3 zu erhalten. Es kehrt zu while in der 4. Zeile zurück und so weiter, bis der variable Tag 7 wird.

Was passiert, wenn der variable Tag 7 wird, wie zuvor iteriert und schließlich Tag ++ dem variablen Tag 8 zuweist? Gehen Sie dann zurück zu, während Sie sich in der 4. Zeile befinden.

Derzeit ist dem variablen Tag 8 zugeordnet. (Tag <= 7) Das heißt, 8 <= 7, aber der bedingte Ausdruck ist nicht erfüllt. Dies ist das Ende des iterativen Prozesses. Wenn die iterative Verarbeitung abgeschlossen ist, wird die Verarbeitung der 5. bis 6. Zeile nicht durchgeführt und die Verarbeitung der 8. Zeile wird übersprungen.

Dann wird der Vorgang der 8. Zeile ausgeführt und das Programm beendet.

Konsole.


Erster Tag
der 2. Tag
Dritter Tag
Tag 4
Tag 5
Tag 6
Tag 7
Eine Woche ist vergangen

do-while-Anweisung

Die Anweisung: sunny: While wird weiter verarbeitet, bis sich die Bedingung ändert. Im Fall von do-while wird die Verarbeitung einmal ausgeführt und dann wird die Verarbeitung fortgesetzt, bis sich die Bedingungen ändern.

Beispiel.java


public class Main {
    public static void main(String[] args) {
        int day = 1;
        do {
            System.out.println(day + "Tag");
            day++;
        } while (day <= 7) ;
        System.out.println("Eine Woche ist vergangen");
    }
}

Weisen Sie dem variablen Tag in der dritten Zeile 1 zu.

In der while-Anweisung, während als nächstes kam, überprüfte ich die Bedingungen. In dieser do-while-Anweisung erfolgt die Verarbeitung jedoch früher.

Die Zeichen des ersten Tages werden in der 5. Zeile angezeigt. In der 6. Zeile wird 1 zum variablen Tag hinzugefügt, sodass 1 + 1 2 ersetzt.

In der 7. Zeile bestimmt while (Tag <= 7), ob die Bedingung erfüllt ist. Da dem variablen Tag 2 zugeordnet ist, ist die Bedingung mit 2 <= 7 erfüllt. Der Rückgabevorgang wird bis zur 4. Zeile wiederholt.

Wenn 8 in die Variable Tag mit while (Tag <= 7) eingegeben wird, ist die Bedingung nicht erfüllt und der iterative Prozess endet.

Das Programm endet mit einer Meldung, dass eine Woche in der 8. Zeile vergangen ist: smile:

zur Aussage

: sunny: Wiederholen Sie diesen Vorgang, indem Sie die Anzahl der Male angeben

Beispiel.java


public class Main {
    public static void main(String[] args) {
        for (int cake = 0; cake < 5; cake++) {
            System.out.println("Ich möchte Pfannkuchen essen!");
        }
    }
}

Die dritte Zeile ist die for-Anweisung. Ich dachte, es wäre sehr kompliziert ... Sobald Sie wussten, was jeder bedeutete, war es nicht allzu schwierig: Lächeln: Ich erkläre: lächeln:

in der for-Anweisung

int cake = 0;

Was bedeutet dies für den Anfangswert? Das ist. Weisen Sie in der obigen Anweisung dem variablen Kuchen 0 zu. Das ist.

Und als nächstes

cake < 5;

Wie oft wiederholt dies den Vorgang? Das ist. Weißt du übrigens, wie oft du wiederholen musst? ?? : Denken: Tatsächlich wird der Vorgang fünfmal wiederholt.

Zuvor habe ich den Anfangswert als int cake = 0; Mit anderen Worten ...

0  1  2  3  4

Es wurde insgesamt 5 Mal wiederholt, einschließlich 0 und 0.

Schließlich

cake++

Dies dient als Zählung, um den Vorgang zu wiederholen. Es zählt nach jedem Prozess als eins.

Die Reihenfolge ist ...

0 wird der variablen Torte mit int kuchen = 0 zugeordnet;

Kuchen <5, dh 0 <5, damit die Bedingungen übereinstimmen Ich möchte Pfannkuchen essen! Wird ausgegeben.

Da es sich um Kuchen ++ handelt, wird 1 der Variablen Kuchen mit 0 + 1 zugewiesen.

Kuchen <5; das heißt 1 <5;, also stimmen die Bedingungen überein Ich möchte Pfannkuchen essen! Wird ausgegeben.

Da es sich um Kuchen ++ handelt, wird der Variablen Kuchen 2 mit 1 + 1 zugewiesen.

Kuchen <5; Mit anderen Worten, 2 <5; damit die Bedingungen übereinstimmen Ich möchte Pfannkuchen essen! Wird ausgegeben.

Da es sich um Kuchen ++ handelt, wird 3 der Variablen Kuchen mit 2 + 1 zugewiesen.

Kuchen <5; Mit anderen Worten, 3 <5; damit die Bedingungen übereinstimmen Ich möchte Pfannkuchen essen! Wird ausgegeben.

Da es sich um Kuchen ++ handelt, wird 4 der Variablen Kuchen mit 3 + 1 zugewiesen.

Kuchen <5; Mit anderen Worten, 4 <5; damit die Bedingungen übereinstimmen Ich möchte Pfannkuchen essen! Wird ausgegeben.

Da es sich um Kuchen ++ handelt, wird der variablen Kuchen 5 durch 4 + 1 zugewiesen.

Da Kuchen <5, dh 5 <5;, stimmen die Bedingungen nicht überein. Der Prozess endet hier.

Ich bin sicher, dass einige von Ihnen dies bemerkt haben. Der int-Kuchen = 0; Teil wurde nur einmal verarbeitet. Dieser Teil ist der erste einmalige Prozess.

Wenn dies auch ein sich wiederholender Prozess wird

Ich habe 1 mit Kuchen ++ hinzugefügt, aber 0 wurde erneut mit int Kuchen = 0 zugewiesen; Addiere 1 mit Kuchen ++ und 0 wird erneut mit int Kuchen = 0 zugewiesen; Sie erhalten eine Endlosschleife, die niemals endet: schreien:

Konsole.


Ich möchte Pfannkuchen essen!
Ich möchte Pfannkuchen essen!
Ich möchte Pfannkuchen essen!
Ich möchte Pfannkuchen essen!
Ich möchte Pfannkuchen essen!

Der Anfangswert muss übrigens nicht unbedingt mit 0 beginnen.

Beispiel.java


for (int cake = 1; cake < 6; cake++) 

Wenn Sie 5 Mal wiederholen möchten, setzen Sie den Zahlenteil auf Kuchen <6; oder Kuchen <= 5; Das umgekehrte Muster ist auch möglich: Lächeln:

Beispiel.java


for (int cake = 5; cake > 0; cake--)

In diesem Fall wird dem Anfangswert 5 zugewiesen, und da es sich um Kuchen handelt, wird der Wert des variablen Kuchens um 1 dekrementiert. Kuchen> 0; Mit anderen Worten bedeutet dies, die Verarbeitung bis 1> 0 fortzusetzen.

Aussage fortsetzen

: sunny: Überspringt die Verarbeitung für die angegebene Runde und fährt mit der nächsten Runde fort.

Beispiel.java


public class Main {
    public static void main(String[] args) {
        for (int cake = 0; cake < 5; cake++) {
            if (cake == 3) {
                continue;
            }
            System.out.println("Ich möchte Pfannkuchen essen!");
        }
    }
}

Was bedeutet das

if (cake == 3) { continue; }

Wenn dem variablen Kuchen 3 zugewiesen ist, nicht verarbeiten (ich möchte Pfannkuchen essen!) Fahren Sie mit dem nächsten Prozess fort. Das heißt: lächeln:

Also wenn du rennst

Konsole.


Ich möchte Pfannkuchen essen!
Ich möchte Pfannkuchen essen!
Ich möchte Pfannkuchen essen!
Ich möchte Pfannkuchen essen!

Wurde nur 4 mal ausgeführt: smile: Ich glaube, ich habe den Prozess zum Zeitpunkt der switch-Anweisung mit break gestoppt.

Pause → Der Vorgang wird unterbrochen. Weiter → Überspringt die Verarbeitung für die angegebene Runde und fährt mit der nächsten Runde fort.

Die beiden sehen ähnlich, aber unterschiedlich aus. Übrigens, wenn Sie den obigen Teil ändern, fahren Sie fort, um zu brechen Da der Prozess nach 3 mal unterbrochen wird Ich möchte Pfannkuchen essen! Wird nur 3 mal verarbeitet.

Blöcke und bedingte Ausdrücke

Block

: sunny: Eine Sammlung von Anweisungen, die durch Verzweigen oder Wiederholen ausgeführt werden

Beispiel.java


public class Main {
	public static void main(String[] args) {
	    boolean bread = true;
	    if (bread == true) {
	        System.out.println("Lass es uns rösten und essen!");
	    } else {
	        System.out.println("Lass uns in die Bäckerei gehen, um zu kaufen!");
	    }
	}
}

Nehmen Sie den in der if-Anweisung zuvor erläuterten Code als Beispiel: smile: Welcher Teil wird der Block sein? Das ist die 5. und 7. Zeile. Um genauer zu sein

Beispiel.java


{
System.out.println("Lass es uns rösten und essen!");
}

Von {von {nach if (Brot == wahr) in der 4. Zeile Der Block steht bis zu} vor else in der 6. Zeile.

Beispiel.java


{
System.out.println("Lass uns in die Bäckerei gehen, um zu kaufen!");
}

Von {von {nach sonst in der 6. Zeile Der Block ist bis zur 8. Zeile}.

Beispiel.java


public class Main {
	public static void main(String[] args) {
		int day = 1;
        while (day <= 7) {
            System.out.println(day + "Tag");
            day++;
        }
        System.out.println("Eine Woche ist vergangen");
    }
}

Ich werde es in der while-Anweisung früher erklären: smile:

Beispiel.java


{
System.out.println(day + "Tag");
day++;
}

Nach (Tag <= 7) in der 4. Zeile von { Bis zur 7. Zeile}.

Bedingter Ausdruck

Ausdruck geschrieben in () nach: sonnig: ob oder während : sunny: Der Inhalt von () ist die Bedingung zum Verzweigen des Prozesses, wenn es sich um eine if-Anweisung handelt, und die Bedingung zum weiteren Wiederholen, wenn es sich um eine while-Anweisung handelt.

Beispiel.java


if (bread == true)

(Brot == wahr)

Beispiel.java


while (day <= 7)

(Tag <= 7).

Recommended Posts

[Java] Verzweigen und Wiederholen
Java-bedingter Zweig
Java bedingter Zweig
Java und JavaScript
XXE und Java
[Java] Bedingter Zweig
Java wahr und falsch
[Java] Vergleich von Zeichenketten und && und ||
Java - Serialisierung und Deserialisierung
timedatectl und Java TimeZone
[Java] Variablen- und Typtypen
Java (Klasse und Instanz)
[Java] Überladen und überschreiben
Studiere Java # 2 (\ mark and operator)
Java Version 8 und neuere Funktionen
[Java] Unterschied zwischen == und gleich
[Java] Generics-Klasse und Generics-Methode
Java-Programmierung (Variablen und Daten)
Java und Iterator Teil 1 Externe Iterator Edition
Java if- und switch-Anweisungen
Definition und Instanziierung von Java-Klassen
Apache Hadoop und Java 9 (Teil 1)
[Java] Über String und StringBuilder
Studieren Sie Java # 7 (Art der Verzweigungssyntax)
☾ Java / Repeat-Anweisung und Repeat-Steueranweisung
Java-Methoden und Methodenüberladungen
Java Generics T und? Unterschied
Vor- und Nachteile von Java
Java (bedingte Verzweigung und Wiederholung)
Über Java-Paket und Import
[Java] Laden Sie ein Bild hoch und konvertieren Sie es in Base64
C # und Java überschreiben Story
Java abstrakte Methoden und Klassen
Java während und für Anweisungen
Java-Kapselung und Getter und Setter
Ich habe PHP- und Java-Konstruktoren verglichen
Unterschiede zwischen "Anfänger" Java und Kotlin
Verwenden Sie Java mit MSYS und Cygwin
Verteilte Ablaufverfolgung mit OpenCensus und Java
[Java] Unterschied zwischen Hashmap und HashTable
Deklaration, Initialisierung und Typen von Java-Variablen
Java Excel Insertion und Bildextraktion
Installieren Sie Java und Tomcat mit Ansible
AWS SDK für Java 1.11.x und 2.x.
[Java] Grundtypen und Anweisungshinweise
Java-Veröffentlichungsdatum und EOL-Zusammenfassung
Java und primäre Funktionen - jenseits funktionaler Schnittstellen -
[Java] Verzweigungsaufzählung mit switch-Anweisung
Über Biocontainer fastqc und Java
Java für Anfänger, Ausdrücke und Operatoren 1
Java Primer Series (Variationen und Typen)
Beispiel für Codierung und Decodierung in Java
[Java-Anfänger] Über Abstraktion und Schnittstelle
Grundlegende Datentypen und Referenztypen (Java)
[Java] Schleifenverarbeitung und Tabelle von neunundneunzig
Java-Argumente, Rückgabewerte und Überladungen
OpenJDK 8 Java- und Javac-Befehlshilfe
Java-Referenzmechanismus (Stack und Heap)
Java für Anfänger, Ausdrücke und Operatoren 2