Rekursion und Schleifen

JavaBeginner
Jetzt üben

Einführung

Computer werden oft verwendet, um wiederkehrende Aufgaben zu automatisieren. Wiederkehrende Aufgaben ohne Fehler zu machen, ist etwas, was Computer gut können und Menschen schlecht. Wie bedingte Ausdrücke können auch Schleifen ineinander geschachtelt werden, aber dies wird unseren Code schwer lesbar machen und die Leistung wird nicht gut sein. Versuchen Sie, geschachtelte Schleifen zu vermeiden. Es gibt drei Arten von Schleifen in Java. Wir werden sie nacheinander in diesem Lab lernen.

Inhalt

Rekursion in der Informatik ist eine Technik, bei der die Lösung eines Problems von den Lösungen kleinerer Instanzen desselben Problems abhängt (im Gegensatz zu Iteration). Der Ansatz wird als Rekursion bezeichnet und kann auf viele Arten von Problemen angewendet werden. Rekursion ist eine der zentralen Ideen der Informatik. Die Kraft der Rekursion liegt offensichtlich in der Möglichkeit, eine unendliche Menge von Objekten durch eine endliche Anzahl von Aussagen zu definieren. Auf die gleiche Weise kann eine unendliche Anzahl von Berechnungen durch ein endliches rekursives Programm beschrieben werden, auch wenn dieses Programm keine expliziten Wiederholungen enthält.

Beispiel:

Schreiben Sie folgenden Code in die Datei /home/labex/project/recursionTest.java:

public class recursionTest{
    public static int fibonacci(int n){
        if(n<=2){
            return 1;
        }else{
            return fibonacci(n-1)+fibonacci(n-2);
        }
    }
    public static void main(String[] args){
        int res = recursionTest.fibonacci(10);
        System.out.println(res);
    }
}

Ausgabe:

Führen Sie die Datei recursionTest.java mit folgenden Befehlen aus:

javac /home/labex/project/recursionTest.java
java recursionTest

Sehen Sie sich die Ausgabe an:

55

while-Schleife

Wenn Sie eine while-Schleife betreten, wird zunächst die Bedingung überprüft. Die while-Schleife wird immer dann ausgeführt, solange die Bedingung falsch ist. Die Syntax sieht wie folgt aus:

Beispiel:

Schreiben Sie folgenden Code in die Datei /home/labex/project/whileTest.java:

public class whileTest
{
    public static void main(String[] args)
    {
        int x = 1;
        // Beenden Sie die Schleife, wenn x größer als 3 ist. Der innere Code wird insgesamt 3 mal ausgeführt.
        while (x <= 3)
        {
            System.out.println("x = " + x);
            // Inkrementieren Sie den Wert von x um 1 bei jeder Iteration für die nächste Iteration
            x++;
        }
    }
}

Ausgabe:

Führen Sie die Datei whileTest.java mit folgenden Befehlen aus:

javac /home/labex/project/whileTest.java
java whileTest

Sehen Sie sich die Ausgabe an:

x = 1
x = 2
x = 3

do-while-Schleife

Diese Schleife ähnelt der while-Schleife sehr, aber es gibt einen Unterschied. Unabhängig von dem Wert der Bedingung wird die Schleife immer mindestens einmal ausgeführt; danach wird die Bedingung überprüft. Manchmal eignet es sich daher möglicherweise nicht für bestimmte Umstände. Die Syntax lautet:

Beispiel:

Schreiben Sie folgenden Code in die Datei /home/labex/project/doWhileTest.java:

public class doWhileTest
{
    public static void main(String[] args)
    {
        int x = 1;
        do
        {
            // Der Code darunter wird zuerst ausgeführt, dann wird die Bedingung überprüft.
            System.out.println("x = " + x);
            x++;
        }
        while (x <= 3);
    }
}

Ausgabe:

Führen Sie die Datei doWhileTest.java mit folgenden Befehlen aus:

javac /home/labex/project/doWhileTest.java
java doWhileTest

Sehen Sie sich die Ausgabe an:

x = 1
x = 2
x = 3

for-Schleife

Die for-Schleife sieht wie folgt aus:

Beispiel:

for (init expression; condition expression; increment expression)
{
    // statements here
}

Die Initialisierungsbedingung, die den Anfang einer for-Schleife markiert, wird nur einmal ausgeführt. Die Bedingungsexpression wird jedes Mal vor dem Betreten der Schleife überprüft. Sie wird verwendet, um die Abbruchbedingung einer Schleife zu testen und muss einen booleschen Wert zurückgeben. Wenn die Bedingung wahr ist, werden die Anweisungen in der Schleife ausgeführt; danach wird die Inkrementierungsausdruck ausgeführt, um die Werte des Zählers oder anderer Variablen für die nächste Iteration zu modifizieren.

Beispiel:

Schreiben Sie folgenden Code in die Datei /home/labex/project/forTest.java:

public class forTest
{
    public static void main(String[] args)
    {
        // for-Schleife beginnt, wenn x = 1 bis x <= 3
        for (int x = 1; x <= 3; x++) {
            System.out.println("x = " + x);
        }
    }
}

Ausgabe:

Führen Sie die Datei forTest.java mit folgenden Befehlen aus:

javac /home/labex/project/forTest.java
java forTest

Sehen Sie sich die Ausgabe an:

x = 1
x = 2
x = 3

Sie können die Schleife jederzeit in der Schleifenkörper verlassen, indem Sie in einem if-Block von Anweisungen Code wie continue oder break verwenden. break wird die gesamte Schleife beenden, während continue nur die aktuelle Iteration beenden und die nächste Iteration ausführen (wenn die Bedingung wahr ist).

Beispiel:

Schreiben Sie folgenden Code in die Datei /home/labex/project/loopTest.java:

public class loopTest
{
    public static void main(String[] args)
    {
        // for-Schleife beginnt, wenn x = 1 bis x <= 3
        for (int x = 1; x <= 3; x++) {
            if(x==2){
                // beende die gesamte Schleife
                break;
                // continue wird nur die aktuelle Iteration beenden und die nächste Iteration ausführen
                // Sie können den break-Ausdruck löschen und continue verwenden. Schauen Sie sich die Ausgabe an.
                // continue;
            }
            System.out.println("x = " + x);
        }
    }
}

Ausgabe:

Führen Sie die Datei loopTest.java mit folgenden Befehlen aus:

javac /home/labex/project/loopTest.java
java loopTest

Sehen Sie sich die Ausgabe an:

x = 1

Zusammenfassung

In diesem Lab haben wir drei Arten von Schleifen gelernt. Die for-Schleife und die while-Schleife sind leicht zu lernen, während die do-while-Schleife logisch nicht ganz perfekt ist. Sie sollten sie sehr vorsichtig wählen.