Erfassen Sie Ihre Fortschritte
Trailhead-Startseite
Trailhead-Startseite

Verwenden einer for-Schleife zum Iterieren durch eine Liste

Lernziele

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

  • Entscheiden, wann Sie eine herkömmliche for-Schleife oder eine for-Schleife mit Iteration durch eine Liste oder ein Set verwenden
  • Schreiben einer herkömmlichen for-Schleife und einer for-Schleife mit Iteration durch eine Liste

Wie Sie in "Apex – Grundlagen für Administratoren" gelernt haben, ist eine Schleife ein Codeblock, der wiederholt wird, bis eine bestimmte Bedingung erfüllt ist. Schleifen ermöglichen Ihnen, eine Aufgabe beliebig oft auszuführen. Apex kennt drei Arten von Schleifen. Die Schleifen while und do-while haben wir bereits verwendet. Die dritte Art ist die for-Schleife. Eine for-Schleife iteriert durch Elemente auf die gleiche Weise wie while- und do-while-Schleifen, kann aber auch durch eine Liste oder ein Set iterieren. (Sie können for-Schleifen auch mit SOQL verwenden, aber darum kümmern wir uns ein anderes Mal.)

In dieser Einheit lernen Sie zwei Arten von for-Schleifen kennen.

  • Die herkömmliche for-Schleife
  • Die for-Schleife mit Iteration durch eine Liste oder ein Set

Herkömmliche for-Schleife

Zur Erinnerung: while- und do-while-Schleifen geben eine Bedingung an, die steuert, wie oft ein Codeblock ausgeführt wird. Die Schleife endet, wenn die Bedingung falsch ist. for-Schleifen machen dasselbe, aber mit einfacherer Syntax. 

Die Funktionsweise ist wie folgt: Wenn eine Schleife gestartet wird, initialisiert sie einen Zähler. Dann prüft sie, ob die Schleifenbedingung erfüllt ist. Ist dies der Fall, führt die Schleife eine Aktion durch, aktualisiert den Zählen und prüft erneut die Bedingung. Wenn die Prüfung ergibt, dass die Bedingung nicht erfüllt ist, endet die Schleife.

Workflow-Diagramm einer herkömmlichen for-Schleife

Die Deklarationsanweisung der Schleife hat drei Aufgaben.

  1. Die Variable i mit 0 initialisieren
  2. Die Bedingung i < 5 angeben
  3. Die Variable i um ein i++ erhöhen

for(Integer i = 0; i<5; i++){ //Code Block }

Wenn die Schleife beginnt, hat die Variable i den Wert 0, was kleiner als 5 ist. Die Bedingung ist wahr, sodass die Schleife einmal ausgeführt wird. Am Ende dieser einen Iteration wird die Variable erhöht und i zu 1, was immer noch kleiner als 5 ist. Deshalb wird die Schleife erneut ausgeführt. Dieser Zyklus wird fortgesetzt, bis i = 5. Danach endet die Schleife, weil die Bedingung falsch ist.

Schreiben und Ausführen einer herkömmlichen for-Schleife

  1. Klicken Sie in der Developer Console auf Debug | Open Execute Anonymous Window.
  2. Fügen Sie in das Fenster "Enter Apex Code" diesen Code ein:
  3. for(Integer i = 0; i < 5; i++){
        System.debug('The number is ' + i );
    }
  4. Führen Sie den Code aus und überprüfen Sie das Debug-Protokoll.

Sie sollten fünf Einträge sehen, deren Nummer von null auf vier zunimmt. 

[2]|DEBUG| The number is 0.[2]|DEBUG| The number is 1.][2]|DEBUG| The number is 2.[2]|DEBUG| The number is 3.[2]|DEBUG| The number is 4.

Wenn also while- und do-while-Schleifen das Gleiche tun wie for-Schleifen, wozu brauchen wir dann überhaupt for-Schleifen? Zwei Gründe: 

  1. for-Schleifen werden verwendet, wenn Sie wissen, wie oft die Schleife ausgeführt werden soll. Wenn Sie möchten, dass die Schleife aufgrund einer anderen Bedingung als der Anzahl der Ausführungen beendet wird, sollten Sie die while-Schleife verwenden.
  2. for-Schleifen sind kompakter, weil sie die drei Teile – Variable, Bedingung und Erhöhungsschritt – in einer Anweisung zusammenhalten.

Sehen Sie sich dieses Beispiel an, das erst als while-Schleife und dann als for-Schleife geschrieben wurde.

while-Schleife

Integer i = 0;
while (i < 5){
    System.debug('The number is ' + i);
    i++;
}

for-Schleife

for(Integer i = 0; i < 5; i++){
    System.debug('The number is ' + i );
}

Der Code der for-Schleife ist kompakter. Er macht das Gleiche wie die while-Schleife, aber mit drei statt fünf Codezeilen. Zwei weitere Codezeilen mögen jetzt wie ein eher kleiner Unterschied klingen, aber wenn Ihre Organisation Tausende von Codezeilen hat, ist jede weitere Zeile relevant.

for-Schleifen mit Iteration durch eine Liste oder ein Set

Die for-Schleife mit Iteration durch eine Liste oder ein Set (for-Schleife mit Iteration) ist eine Variation der herkömmlichen for-Schleife. Die for-Schleife mit Iteration durchläuft die Elemente in einer Liste oder einem Set. Da die Liste oder das Set eine bestimmte Anzahl von Elementen enthält, müssen Sie keine Variablen erhöhen oder Bedingung überprüfen. Die Schleife durchläuft alle Elemente in der Liste oder im Set und endet dann.

Die Syntax einer for-Schleife mit Iteration ist etwas anders als die herkömmliche for-Schleifensyntax. Wenn Sie eine for-Schleife mit Iteration deklarieren, muss der Datentyp der Variablen mit dem Datentyp der Liste oder des Sets übereinstimmen. Hier die Syntax einer for-Schleife mit Iteration.

for (data_type variable_name : list_name or set_name){
    // Loop body
}

Schreiben einer for-Schleife mit Iteration

Lassen Sie uns nun eine for-Schleife mit Iteration erstellen, um diese Liste durchzugehen.

List <String> tea = new List<String>{'Black Tea', 'Green Tea', 'Chai Tea'};

Beachten Sie, dass die Liste tea den Datentyp "string" hat. Um die for-Schleife mit Iteration zu deklarieren, verwenden wir den Listendatentyp (string) und den Listennamen (tea).

for (String t : tea) 

Diese Anweisung macht zwei Dinge, bevor die Schleife beginnt.

  1. Die Variable t mit dem Datentyp "string" deklarieren (der dem Datentyp der Liste entspricht)
  2. Die Liste "Tea" als die Liste angeben, durch die die Schleife iteriert

Wir haben die Listendeklaration und die Deklaration der for-Schleife mit Iteration. Wir müssen sie nur noch mit dem Schleifenkörper zusammenfügen, und schon können wir den Code ausführen.

Ausführen des Codes

  1. Klicken Sie in der Developer Console auf Debug | Open Execute Anonymous Window.
  2. Fügen Sie in das Fenster "Enter Apex Code" diesen Code ein:
  3. List <String> tea = new List<String>{'Black Tea', 'Green Tea', 'Chai Tea'};
    for(String t : tea){
        System.debug('We have ' + t);
    }
  4. Führen Sie den Code aus und überprüfen Sie das Debug-Protokoll.

Überprüfen Sie das Debug-Protokoll. Sie sollten die drei Einträge Black Tea, Green Tea und Chai Tea sehen.

Prima!

Nachbetrachtung

Gut gemacht! Sie haben einiges gelernt. Wenn Sie sich bei einem Konzept nicht sicher sind, konsultieren Sie die Ressourcen zu Apex wie beispielsweise den Apex Developer Guide. Wenn Sie wissen, wo Sie Antworten finden können, und sich darangeben, Probleme zu lösen, wird die Apex-Programmierung mit der Zeit einfacher. Haben Sie etwas Geduld. Frohes Programmieren!

Ressourcen