Die lexikalische for-Schleife in JavaScript
Bei der lexikalischen for-Schleife können zunächst Konstanten oder Variablen für die Schleife deklariert und initialisiert werden.
Syntax
- Syntax (vereinfacht)
Iterationsanweisung
.-------------------. .-------------------.
.---. .-. .--------------------------. | .----------. v .-. | .----------. v .-. .-----------.
--->( for )--->( ( )--->| lexikalische Deklaration |---'--->| Ausdruck |---'--->( ; )---'--->| Ausdruck |---'--->( ) )--->| Anweisung |--->
'---' '-' '--------------------------' '----------' '-' '----------' '-' '-----------' lexikalische Deklaration .----------------------------.
.-----. .------------. | .-. .----------. v .-.
---.--->( const )---.---.--->| Bezeichner |---'--->( = )--->| Ausdruck |---'---.--->( ; )--->
| '-----' ^ ^ '------------' '-' '----------' | '-'
| .-----. | '------------------------------------------------------'
'--->( let )---'
'-----'
Semantik
Durch die lexikalische Deklaration werden Konstanten und Variablen festgelegt, die im Rest der Schleife verwendet werden können.
Der zweite Ausdruck wird gegebenenfalls wie in einer while-Schleife interpretiert. Falls er fehlt, gilt er als wahr.
Der letzte Ausdruck wird gegebenenfalls nach jeder Ausführung der Anweisung ausgewertet.
Anmerkungen
Eine Schleife »for( A ; B ; C )D « entspricht in vielen Fällen dem Block »{ A ; while( B ){ D C ; }}«.
Beispiel
Das folgende Beispiel zeigt eine einfache Zählschleife mit »for«.
- Konsolenprotokoll
"use strict"; for( let i = 0; i < 4; i = i + 1 )console.log( i );
0
1
2
3undefined
Das folgende Beispiel zeigt eine while-Schleife mit derselben Ausgabe wie die vorangehende for-Schleife.
- Konsolenprotokoll
"use strict"; { let i = 0; while( i < 4 ){ console.log( i ); i = i + 1; undefined; }}
0
1
2
3undefined
- Quellen
- ECMAScript 2016: 13.7.4.2 The for Statement
Übungsfragen
Übungsfrage
Was gibt das folgende Skript aus?
- Script
for( let v = true;; )console.log( v = false );
Übngsfrage
Was gibt das folgende Skript aus?
- Script
for( let i = 2; i < 4; i = i + 1 )console.log( i );
Übungsfrage
Was gibt das folgende Skript aus?
- Script
for( let i = 4; i = i - 1; i > 2 )console.log( i );
Übungsfrage
Was gibt das folgende Skript aus?
- Script
for( let i = 1;( i = i - 1 )=== 0; console.log( "alpha" ))console.log( "beta" );
Übungsaufgaben
Weitere Übungsaufgaben, zu deren Lösung auch Schleifen geschrieben werden können, finden sich in einer separaten Lektion mit Übungsaufgaben am Ende des Grundkurses.
/ Schreiben einer lexikalischen for-Anweisung
Schreiben Sie eine lexikalische for-Anweisung, deren lexikalische Deklaration den Bezeichner »v« und den Ausdruck »7« verwendet. Die beiden weiteren Ausdrücke dieser Iterationsanweisung sollen »f()« und »2+3« lauten.
- Syntax (vereinfacht)
Iterationsanweisung
.-------------------. .-------------------.
.---. .-. .--------------------------. | .----------. v .-. | .----------. v .-. .-----------.
--->( for )--->( ( )--->| lexikalische Deklaration |---'--->| Ausdruck |---'--->( ; )---'--->| Ausdruck |---'--->( ) )--->| Anweisung |--->
'---' '-' '--------------------------' '----------' '-' '----------' '-' '-----------' lexikalische Deklaration .----------------------------.
.-----. .------------. | .-. .----------. v .-.
---.--->( const )---.---.--->| Bezeichner |---'--->( = )--->| Ausdruck |---'---.--->( ; )--->
| '-----' ^ ^ '------------' '-' '----------' | '-'
| .-----. | '------------------------------------------------------'
'--->( let )---'
'-----'