Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:m288:learningunits:lu05:01 [2025/09/17 16:54] vdemirde:modul:m288:learningunits:lu05:01 [2025/10/22 16:07] (aktuell) – [Wann ist welche Schleife passend?] vdemir
Zeile 1: Zeile 1:
-====== LU05 - Loops/Schleifen Übersicht ======+====== LU05a - Loops/Schleifen Übersicht ======
  
-===== Einleitung =====+===== Einleitung bzw. Problemstellung =====
 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. Stattdessen: Schleifen – sie wiederholen Anweisungen, solange eine bestimmte Bedingung erfüllt ist.+Das eben gezeigte Beispiel umfasst nur 100 Zahlen-Elemente, aber stellen Sie sich vor es seien tausende oder Millionen (Ergebnis einer Google-Suche). Sehr unpraktisch und in der Realität so nicht handhabbar. Wir brauchen also eine Verarbeitungsstruktur, die dynamisch die Lösungsmenge verarbeitetWir brauchen also stattdessen **Schleifen** – sie wiederholen Anweisungen, solange eine bestimmte Bedingung erfüllt ist.
  
 {{:de:modul:m288:learningunits:lu04:lu04_01.png?300|Wiederholungen braucht es um Datenlisten anzuzeigen}} {{:de:modul:m288:learningunits:lu04:lu04_01.png?300|Wiederholungen braucht es um Datenlisten anzuzeigen}}
  
-In fast jeder Programmierspracheso auch in JavaScriptgibt es die nachfolgende Typen:+===== Lösung: Schleifen ===== 
 +Um eine grosse Anzahl von Elementendie beispielsweise in Arrays gepeichert sind verarbeiten zu könnenverwenden wir am besten Schleifen. Man könnte sogar sagen, dass //Schleifen// und //Arrays// ein perfektes Paar abgeben, weil 
  
-{{:de:modul:m288:learningunits:lu04:javascript-loops-1200x675.jpg?600|}}+  * **Arrays** können eine beliebige Anzahl von Elementen speichern/aufnehmen. 
 +  * **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, so auch in JavaScript, gibt es die nachfolgende Typen:
  
-  - for-SchleifeZählerschleife, kopfgesteuert +{{:de:modul:m288:learningunits:lu04:javascript-loops-1200x675.jpg?500|}}
-  - while-SchleifeBedingung, kopfgesteuert +
-  - for ... ofSolange es hat, kopfgesteuert +
-  for ... in: Bedingung, 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 ==== +  - **for-Schleife:** Zählerschleifekopfgesteuert 
-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. +  **while-Schleife:** Bedingung, kopfgesteuert 
- +  **for ... in:** Bedingungkopfgesteuert
-**Beispiel** +
- +
-  for (let i = 0; i < 5; i++) { +
-    console.log("Zahl:", i); +
-  } +
-  // 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//while-Schleife// ist eine kopfgesteuerte Schleife, d.h. die Schleifenbedingung wird im Kopf der Schleife abgefragt. Der Code, der sich innerhalb der Schleife befindet solange wiederolt, solange eine Bedingunge **wahr** ist.  +
- +
-**Beispiel** +
-  let i = 0; +
-  while (i < 5) { +
-    console.log("while:"i); +
-    i++;  +
-  +
-   +
-**Ausgabe** +
-   +
-  while: 0 +
-  while: 1 +
-  while: 2 +
-  while: 3 +
-  while: 4 +
-     +
-**Wichtig:** Vergisst man i++, hängt man in einer Endlosschleife, weil die Bediung im Kopf der Schleife nie erfüllt wird. +
- +
-==== do…while-Schleife ==== +
-Die //do...while//-Schleife ist ähnlich wie die //while-Schleife//, mit dem Unterschied, dass die Schleifenbedingung im Fuss der Schleife abgefragt wird. Folglich wird der Code innerhalb der Schleife mindestens einmal ausgeführt, auch wenn diue Bedingung sofort falsch ist. +
- +
-**Beispiel** +
- +
-  let i = 5; +
-  do { +
-    console.log("do-while:", i); +
-    i++; +
-  } while (i < 5); +
- +
-**Ausgabe** +
- +
-  do-while: 5 // (obwohl die Bedingung von Anfang an falsch war). +
- +
-==== for…of-Schleife ==== +
-Dieser Schleiffentyp ist ebenfalls kopfgesteurt. Sie ist idealum über Arrays (oder Strings) zu iterieren (durchzugehen). +
- +
-  let fruits = ["Apfel", "Banane", "Kirsche"]; +
-  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 kopfgesteuertSie läuft über die Eigenschaften eines Objekts (oder Indizes eines Arrays). +
- +
-**Beispiel** +
-  let person = {name: "Anna", age: 25, city: "Berlin"}; +
-  for (let key in person) { +
-    console.log(key, ":", person[key]); +
-  } +
- +
-**Ausgabe** +
- +
-  name : Anna +
-  age : 25 +
-  city : Berlin +
- +
-===== Kontrollanweisungen in Loops ===== +
-Bei sehr lange Listen kann es passieren, dass man die aktuell laufende Schleife vorzeitig abbrechen möchte. Hier gibt es zwei Möglichkeiten: +
- +
-  * **break** → beendet die Schleife komplett +
-  * **continue** → überspringt den aktuellen Durchlauf und springt zur nächsten Runde +
- +
-**Beispiel** +
- +
-  for (let i = 0; i < 5; i++) { +
-    if (i === 2) continue;  // überspringt 2 +
-    if (i === 4) break;     // stoppt bei 4 +
-    console.log(i); +
-  } +
-   +
-**Ausgabe** +
-   +
-  01, 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 vom ersten bis zum letzten Element durchgegangen werden sollen. |
-| for...in | Wenn Objekte durchgegangen erden sollen. |+
  
 **Achtung:** Endlosschleifen sind der Klassiker für eingefrorene Programme. **Achtung:** Endlosschleifen sind der Klassiker für eingefrorene Programme.
  • de/modul/m288/learningunits/lu05/01.1758120894.txt.gz
  • Zuletzt geändert: 2025/09/17 16:54
  • von vdemir