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<ende; i++) { // zu // wiederholender // code }
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<liste.length; i++) { let prim=liste[i]; // Zugriff auf das Element mit Index i console.log(prim); }
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<keys.length; i++) { let key = keys[i]; console.log(`zum key ${key} gehört der Eintrag ${koordinaten[key]}`); }
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<heu.length && heu[position]!=nadel) { // Noch nicht am Ende und Buchstabe an position ist nicht die Nadel? position++; } if (position<heu.length) { console.log(`Nadel im Heuhaufen an Position ${position}`); } else { console.log("Keine Nadel in diesem Heuhaufen"); }
Welche String-Funktion hätte man anstatt dem obigen Code verwenden können?