Table of Contents

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) {
   // ...
}

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?

Hinweis

Lösung

Lösung

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");
}