====== 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 ==== for (let i=start; i Etwas allgemeiner: for (INITIALISIERUNG; BEDINGUNG; POSTINCREMENT) { // ... } * 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: 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 ''${...}$'' geschrieben werden, die ausgewertet und an dessen Stelle geschrieben werden. ==== for of: Einträge eines Arrays durchgehen ==== Arrays (Listen) werden zwischen eckigen Klammern geschrieben, die Element durch Kommas getrennt. let primzahlen = [2,3,7,11,13,17,19,23]; for (let prim of liste) { console.log(prim); } Folgender Code macht das gleiche (auf klassische Art und Weise), wobei ''liste.length'' die Anzahl Elemente $n$ des Array ergibt. Die Elemente sind von $0$ bis $n-1$ indiziert und werden let primzahlen = [2,3,7,11,13,17,19,23]; for (let i=0; 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. let koordinaten = {'x': 5, 'y':2, 'bla': "BLAH"}; for (let key in koordinaten) { console.log(`zum key ${key} gehört der Eintrag ${koordinaten[key]}`); } Folgender Code macht das Gleiche auf klassische Art und Weise: let koordinaten = {'x': 5, 'y':2, 'bla': "BLAH"}; let keys = Objects.keys(koordinaten); for (let i=0; i ===== while ===== Wiederholen, so lange etwas wahr ist: let heu = "Wo zum Teufel ist der a versteckt?"; nadel = "a"; let position=0; // Starten bei Index 0 (erster Buchstabe) while (position Welche String-Funktion hätte man anstatt dem obigen Code verwenden können? [[https://www.w3schools.com/jsref/jsref_indexof.asp|Hinweis]] let heu = "Wo zum Teufel ist der a versteckt?"; nadel = "a"; let position=heu.indexOf(nadel); // Liefert position oder -1, wenn nicht vorhanden if (position>=0) { console.log(`Nadel im Heuhaufen an Position ${position}`); } else { console.log("Keine Nadel in diesem Heuhaufen"); }