Erfassen Sie Ihre Fortschritte
Trailhead-Startseite
Trailhead-Startseite

Verwenden von Schleifen

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:

  • Unterscheiden zwischen "while"- und "do-while"-Schleifen
  • Verwenden von Inkrement- und Dekrementoperatoren zum Steuern der Ausführung von Code

Bei unserem Teatime-Beispiel haben wir eine Kanne Tee zubereitet, um sie mit unseren engsten Freunden zu teilen. Aber was passiert, wenn wir einer Gruppe von 100 Leuten Tee servieren müssen? Wir müssen immer wieder die gleichen Schritte ausführen, bis alle versorgt sind. Das wird wohl eine Menge redundanten Code ergeben, oder? Hier kommen die praktischen Schleifen ins Spiel.

Eine Schleife ist ein Codeblock, der wiederholt wird, bis eine bestimmte Bedingung erfüllt ist. Lassen Sie uns im Falle des Teatime-Codes die Schritte durchgehen, die wiederholt werden müssen:

Add Tea and Sugar to Teacup
Pour Tea in Teacup
Put 1 teaspoon of Sugar in Teacup
Stir Tea in Teacup
Serve Tea to a Friend

Wiederholte Schritte können einer Schleife hinzugefügt werden. Apex kennt drei Arten von Schleifencode: while, do-while und for. Fürs Erste konzentrieren wir uns auf while- und do-while-Schleifen. Bei while und do-while-Schleifen sind nicht nur die Namen sehr ähnlich. Beide prüfen, ob eine bestimmte Bedingung erfüllt ist. Das Unterscheidungsmerkmal ist, wann sie prüfen, ob die Bedingung erfüllt ist. while-Schleifen prüfen die Bedingung, bevor die Schleife beginnt, do-while-Schleifen prüfen sie, nachdem die Schleife beendet wurde. 

Sieht nach einem kleinen Detail aus, oder? Das aber tatsächlich eine ziemlich große Wirkung hat. 

Stellen Sie es sich so vor: Die do-while-Schleife wird immer mindestens einmal durchlaufen. Die while-Schleife wird je nach Bedingung möglicherweise nie durchlaufen. 

while-Schleifen

Die while-Schleife beginnt mit der Überprüfung, ob eine Bedingung erfüllt ist. Wenn die Bedingung wahr ist, erfolgt etwas. Wenn sie falsch ist, wird die Schleife beendet.

Ein grafischer Prozessablauf in einer while-Schleife, bestehend aus einer Bedingung, die überprüft wird, um zu sehen, ob sie wahr oder falsch ist. Wenn die Bedingung wahr ist, wird die Schleife fortgesetzt. Wenn die Bedingung falsch ist, wird die Schleife beendet.

Hier die Syntax:

While (condition){
    //run this block of code
}

Lassen Sie uns while-Schleifen auf unseren Teatime-Code anwenden. 

  1. Klicken Sie in der Developer Console auf Debug | Open Execute Anonymous Window.
  2. Kopieren Sie diesen Code und fügen Sie ihn in das Fenster "Enter Apex Code" ein.
  3. //Declare an Integer variable called totalGuests and set it to 100
    Integer totalGuests = 100;
    //Declare an Integer variable called totalAmountSugar and set it to 159 (number of teaspoons in a bag of sugar).
    Integer totalAmountSugar = 159;
    //Declare an Integer variable called totalAmountTea and set it to 35 (number of teabags).
    Integer totalAmountTea = 35;
    //Loop: Add a teaspoon of sugar and one tea bag to a tea cup. Serve until there is no sugar or tea left.
    While(totalGuests > 0){
        System.debug(totalGuests + 'Guests Remaining');
        //add sugar
        totalAmountSugar--;
        //add tea
        totalAmountTea--;
        //check ingredients
        if(totalAmountSugar == 0 || totalAmountTea == 0){
            System.debug('Out of ingredients!');
            break; //ends the While loop
        }
        totalGuests--;
    }
  4. Aktivieren Sie das Kontrollkästchen Open Log und klicken Sie dann auf Execute.
  5. Das Ausführungsprotokoll wird mit dem Ergebnis der Ausführung des Codes geöffnet. Aktivieren Sie unten im Fenster das Kontrollkästchen Debug Only.

Nein, das Zeichen -- ist kein Tippfehler. Es wird als Post-Dekrementoperator bezeichnet. Es ist eine Kurzform, um zu sagen: " Eine Zahl von diesem Wert subtrahieren." Wenn totalAmountSugar gleich 159 ist, verringern Sie den Wert so, dass der Wert von totalAmountSugar nun gleich 158 ist. Der Post-Inkrementoperator, ++, tut das Gegenteil und fügt dem Wert eine Zahl hinzu.

Was geschieht hier also genau? Denken Sie daran, dass wir ein Hauptziel haben, nämlich 100 Gästen Tee zu servieren. Jedes Mal, wenn wir einen Gast bedienen, wird eine Portion jeder Zutat (totalAmountSugar und totalAmountTea) und ein Gast (totalGuests) abgezogen. Wenn totalAmountSugar oder totalAmountTea 0 (Zeile 15) ODER totalGuests 0 (Zeile 8) erreicht, wird die Schleife beendet und niemand sonst bedient. 

Sehen wir uns an, wie die do-while-Schleife funktioniert.

do-while-Schleifen

Eine do-while-Schleife ermöglicht dem Code, einmal eine Aufgabe auszuführen, bevor die Bedingung getestet wird.

Die do-while-Schleife beginnt mit der einmaligen Ausführung einer Aufgabe. Als Nächstes wird eine Bedingung überprüft. Wenn die Bedingung wahr ist, wird die Aufgabe erneut ausgeführt. Wenn sie falsch ist, wird die Schleife beendet.

Ein grafischer Prozessablauf in einer do-while-Schleife, bestehend aus einem ausgeführten Codeblock und dann einer Bedingung, die überprüft wird, um zu sehen, ob sie wahr oder falsch ist. Wenn die Bedingung wahr ist, wird die Schleife fortgesetzt. Wenn die Bedingung falsch ist, wird die Schleife beendet.

Sehen wir uns die Syntax an:

Do{
    //run this block of code
}while (condition);
  1. Klicken Sie in der Developer Console auf Debug | Open Execute Anonymous Window.
  2. Kopieren Sie diesen Code und fügen Sie ihn in das Fenster "Enter Apex Code" ein.
  3. //Declare an Integer variable called totalGuests and set it to 100
    Integer totalGuests = 100;
    //Declare an Integer variable called totalAmountSugar and set it to 159 (number of teaspoons in a bag of sugar).
    Integer totalAmountSugar = 159;
    //Declare an Integer variable called totalAmountTea and set it to 35 (number of teabags).
    Integer totalAmountTea = 35;
    do{
        //deduct sugar serving
        totalAmountSugar--;
        //deduct tea serving
        totalAmountTea--;
        //deduct guest
        totalGuests--;
        System.debug(totalGuests + ' Guests Remaining!');
        //check ingredients
        if(totalAmountSugar == 0 || totalAmountTea == 0){
            System.debug('Out of ingredients!');
            break; //ends the While loop
        }
    } while(totalGuests > 0);
  4. Aktivieren Sie das Kontrollkästchen Open Log und klicken Sie dann auf Execute.
  5. Das Ausführungsprotokoll wird mit dem Ergebnis der Ausführung des Codes geöffnet. Aktivieren Sie unten im Fenster das Kontrollkästchen Debug Only.

Sie haben Variablen deklariert, Werte instanziiert, Listen erstellt und Daten auf verschiedene Arten in Schleifen durchlaufen. Herzlichen Glückwunsch! Sie haben die Einführung in Apex absolviert und sind auf dem besten Weg, das Thema Code besser zu verstehen.

Ressourcen