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.
Hier die Syntax:
While(condition) { //run this block of code }
Lassen Sie uns while
-Schleifen auf unseren Teatime-Code anwenden.
- Klicken Sie in der Developer Console auf Debug | Open Execute Anonymous Window.
- Kopieren Sie diesen Code und fügen Sie ihn in das Fenster "Enter Apex Code" ein.
//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'); //check ingredients if(totalAmountSugar == 0 || totalAmountTea == 0) { System.debug('Out of ingredients! Sugar: ' + totalAmountSugar + ' Tea: ' + totalAmountTea); break; //ends the While loop } //add sugar totalAmountSugar--; //add tea totalAmountTea--; //guest served totalGuests--; }
- Aktivieren Sie das Kontrollkästchen Open Log und klicken Sie dann auf Execute. 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 12) 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.
Sehen wir uns die Syntax an:
Do { //run this block of code } while(condition);
- Klicken Sie in der Developer Console auf Debug | Open Execute Anonymous Window.
- Kopieren Sie diesen Code und fügen Sie ihn in das Fenster "Enter Apex Code" ein.
//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);
- Aktivieren Sie das Kontrollkästchen Open Log und klicken Sie dann auf Execute. 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.