Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:ffprg1-2024:loops [2024/02/17 06:06] – [klassisch] Ivo Blöchliger | lehrkraefte:blc:informatik:ffprg1-2024:loops [2024/02/17 06:18] (current) – [while] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Wiederholungen ====== | ||
| + | |||
| + | Wiederholter Code steht zwischen geschweiften Klammern. | ||
| + | |||
| + | Die geöffnete Klammer wird normaleweise hinter dem öffnenden Statement geschrieben. | ||
| + | Die schliessende Klammer steht normalerweise alleine, senkrecht unter dem Amfang der öffnenden Zeile. | ||
| + | |||
| + | ===== for ===== | ||
| + | Die for-Schleife wird normalerweise verwendet, wenn die Anzahl Wiederholungen bekannt ist. | ||
| + | ==== klassisch ==== | ||
| + | <code javascript> | ||
| + | for (let i=start; i<ende; i++) { | ||
| + | // zu | ||
| + | // wiederholender | ||
| + | // code | ||
| + | } | ||
| + | </ | ||
| + | Etwas allgemeiner: | ||
| + | <code javascript> | ||
| + | for (INITIALISIERUNG; | ||
| + | // ... | ||
| + | } | ||
| + | </ | ||
| + | * INITIALISIERUNG wird **einmal vor** der Schleife ausgeführt. Normalerweise wird hier eine **Laufvariable** initialisiert. | ||
| + | * BEDINGUNG wird **jedesmal vor** der Schleife geprüft. So lange diese wahr ist, wird wiederholt. | ||
| + | * POSTINCREMENT wird **nach jedem Durchlauf** ausgeführt. Normalerweise wird hier die Laufvariable erhöht. | ||
| + | |||
| + | Konkretes Beispiel: | ||
| + | <code javascript> | ||
| + | for (let i=0; i<10; i++) { | ||
| + | console.log(`i=${i} im Quadrat ist ${i*i}`); | ||
| + | } | ||
| + | </ | ||
| + | Bei Zeichenketten in «Backticks» (rückwärtsgerichtete Apotstroph) können Ausdrücke zwischen '' | ||
| + | |||
| + | ==== for of: Einträge eines Arrays durchgehen ==== | ||
| + | Arrays (Listen) werden zwischen eckigen Klammern geschrieben, | ||
| + | <code javascript> | ||
| + | let primzahlen = [2, | ||
| + | for (let prim of liste) { | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | Folgender Code macht das gleiche (auf klassische Art und Weise), wobei '' | ||
| + | <code javascript> | ||
| + | let primzahlen = [2, | ||
| + | for (let i=0; i< | ||
| + | let prim=liste[i]; | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | ==== for in: Schlüssel eines Objekts durchgehen ==== | ||
| + | Ein Object ist eine «Liste», die aber nicht über Zahlen, sondern über Schlüssel (Strings) indiziert wird. | ||
| + | <code javascript> | ||
| + | let koordinaten = {' | ||
| + | for (let key in koordinaten) { | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | Folgender Code macht das Gleiche auf klassische Art und Weise: | ||
| + | <code javascript> | ||
| + | let koordinaten = {' | ||
| + | let keys = Objects.keys(koordinaten); | ||
| + | for (let i=0; i< | ||
| + | let key = keys[i]; | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== while ===== | ||
| + | Wiederholen, | ||
| + | <code javascript> | ||
| + | let heu = "Wo zum Teufel ist der a versteckt?"; | ||
| + | nadel = " | ||
| + | let position=0; | ||
| + | while (position< | ||
| + | position++; | ||
| + | } | ||
| + | if (position< | ||
| + | console.log(`Nadel im Heuhaufen an Position ${position}`); | ||
| + | } else { | ||
| + | console.log(" | ||
| + | } | ||
| + | </ | ||
| + | Welche String-Funktion hätte man anstatt dem obigen Code verwenden können? | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | <hidden Lösung> | ||
| + | <code javascript> | ||
| + | let heu = "Wo zum Teufel ist der a versteckt?"; | ||
| + | nadel = " | ||
| + | let position=heu.indexOf(nadel); | ||
| + | if (position> | ||
| + | console.log(`Nadel im Heuhaufen an Position ${position}`); | ||
| + | } else { | ||
| + | console.log(" | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||