Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:m288:learningunits:lu05:01 [2025/09/17 16:54] – vdemir | de:modul:m288:learningunits:lu05:01 [2025/10/22 16:07] (aktuell) – [Wann ist welche Schleife passend?] vdemir | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== | + | ====== |
| - | ===== Einleitung ===== | + | ===== Einleitung |
| Stellen Sie sich vor, Sie sollen 100 Zahlen auf die Konsole schreiben. Das ginge mit: | Stellen Sie sich vor, Sie sollen 100 Zahlen auf die Konsole schreiben. Das ginge mit: | ||
| Zeile 9: | Zeile 9: | ||
| // ... bis 100 | // ... bis 100 | ||
| | | ||
| - | Sehr unpraktisch. | + | Das eben gezeigte Beispiel umfasst nur 100 Zahlen-Elemente, |
| {{: | {{: | ||
| - | In fast jeder Programmiersprache, so auch in JavaScript, gibt es die nachfolgende Typen: | + | ===== Lösung: Schleifen ===== |
| + | Um eine grosse Anzahl von Elementen, die beispielsweise | ||
| - | {{: | + | * **Arrays** können eine beliebige Anzahl von Elementen speichern/ |
| + | * **Schleifen** können diese beliebige Anzahl von Elemente verarbeiten. | ||
| - | Wir haben nicht Zeit für alle Loop-Arten. Innerhalb des Moduls 288 werden wir uns daher auf die nachfolgenden vier Loops konzentrieren. | + | In fast jeder Programmiersprache, |
| - | - for-Schleife: Zählerschleife, | + | {{:de:modul:m288: |
| - | - while-Schleife: Bedingung, kopfgesteuert | + | |
| - | - for ... of: Solange es hat, kopfgesteuert | + | |
| - | | + | |
| - | ===== Die Schleifenarten ===== | + | Wir haben nicht Zeit für alle Loop-Arten. Innerhalb des Moduls 288 werden wir uns daher auf die nachfolgenden drei Loops konzentrieren. |
| - | ==== for-Schleife ==== | + | |
| - | Die klassische for-Schleife ist eine kopfgesteuerte Schleife, d.h. die Schleifenbedingung wird im Kopf der Schleife abgefragt. Sie ist ideal, wenn wir genau wissen, wie oft etwas wiederholt werden soll. Z.B. wir wollen unsere Produkte jeweils 10 Stück auf einer Seite präsentieren. | + | |
| - | + | | |
| - | **Beispiel** | + | |
| - | + | ||
| - | | + | |
| - | console.log(" | + | |
| - | } | + | |
| - | // 1. Startwert (let i = 0) | + | |
| - | // 2. Bedingung (i < 5) | + | |
| - | // 3. Anweisung ausführen | + | |
| - | // 4. Schritt (i++) | + | |
| - | + | ||
| - | **Ausgabe** | + | |
| - | + | ||
| - | Zahl: 0 | + | |
| - | Zahl: 1 | + | |
| - | Zahl: 2 | + | |
| - | Zahl: 3 | + | |
| - | Zahl: 4 | + | |
| - | + | ||
| - | ==== while-Schleife | + | |
| - | Die w// | + | |
| - | + | ||
| - | **Beispiel** | + | |
| - | let i = 0; | + | |
| - | while (i < 5) { | + | |
| - | console.log(" | + | |
| - | i++; | + | |
| - | | + | |
| - | + | ||
| - | **Ausgabe** | + | |
| - | + | ||
| - | while: 0 | + | |
| - | while: 1 | + | |
| - | while: 2 | + | |
| - | while: 3 | + | |
| - | while: 4 | + | |
| - | + | ||
| - | **Wichtig: | + | |
| - | + | ||
| - | ==== do…while-Schleife | + | |
| - | Die // | + | |
| - | + | ||
| - | **Beispiel** | + | |
| - | + | ||
| - | let i = 5; | + | |
| - | do { | + | |
| - | console.log(" | + | |
| - | i++; | + | |
| - | } while (i < 5); | + | |
| - | + | ||
| - | **Ausgabe** | + | |
| - | + | ||
| - | do-while: 5 // (obwohl die Bedingung | + | |
| - | + | ||
| - | ==== for…of-Schleife ==== | + | |
| - | Dieser Schleiffentyp ist ebenfalls kopfgesteurt. Sie ist ideal, um über Arrays (oder Strings) zu iterieren (durchzugehen). | + | |
| - | + | ||
| - | | + | |
| - | for (let fruit of fruits) { // es wird ein interner Schleifenzähler verwendet, der nacheinander die Arrayelemente ausgibt | + | |
| - | console.log(fruit); | + | |
| - | } | + | |
| - | + | ||
| - | **Ausgabe** | + | |
| - | + | ||
| - | Apfel, Banane, Kirsche | + | |
| - | + | ||
| - | ==== for…in-Schleife ==== | + | |
| - | Diese Schleife ist ebenfall kopfgesteuert. Sie läuft über die Eigenschaften eines Objekts (oder Indizes eines Arrays). | + | |
| - | + | ||
| - | **Beispiel** | + | |
| - | let person = {name: " | + | |
| - | for (let key in person) { | + | |
| - | console.log(key, ":", | + | |
| - | } | + | |
| - | + | ||
| - | **Ausgabe** | + | |
| - | + | ||
| - | name : Anna | + | |
| - | age : 25 | + | |
| - | city : Berlin | + | |
| - | + | ||
| - | ===== Kontrollanweisungen | + | |
| - | Bei sehr lange Listen kann es passieren, dass man die aktuell laufende Schleife vorzeitig abbrechen möchte. Hier gibt es zwei Möglichkeiten: | + | |
| - | + | ||
| - | | + | |
| - | * **continue** → überspringt den aktuellen Durchlauf und springt zur nächsten Runde | + | |
| - | + | ||
| - | **Beispiel** | + | |
| - | + | ||
| - | for (let i = 0; i < 5; i++) { | + | |
| - | if (i === 2) continue; | + | |
| - | if (i === 4) break; | + | |
| - | console.log(i); | + | |
| - | } | + | |
| - | + | ||
| - | **Ausgabe** | + | |
| - | + | ||
| - | 0, 1, 3 | + | |
| ===== Wann ist welche Schleife passend? ===== | ===== Wann ist welche Schleife passend? ===== | ||
| Zeile 132: | Zeile 34: | ||
| | for | Wenn die Anzahl der Wiederholungen bekannt sind. | | | for | Wenn die Anzahl der Wiederholungen bekannt sind. | | ||
| | while | Wenn nur eine Bedingung überprüfen werden soll. | | | while | Wenn nur eine Bedingung überprüfen werden soll. | | ||
| - | | for...of | Wenn über ein Array durchgelaufen werden soll. | | + | | for...in | Wenn Objekte |
| - | | for...in | Wenn Objekte durchgegangen | + | |
| **Achtung: | **Achtung: | ||