HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
View in English Always switch to English
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die do...while-Anweisung erstellt eine Schleife, die eine angegebene Anweisung ausführt, solange die Prüfbedingung als wahr ausgewertet wird. Die Bedingung wird nach der Ausführung der Anweisung ausgewertet, was dazu führt, dass die angegebene Anweisung mindestens einmal ausgeführt wird.
do...while
let result = ""; let i = 0; do { i += 1; result += i; } while (i < 5); console.log(result); // Expected output: "12345"
do statement while (condition);
statement
Eine Anweisung, die mindestens einmal ausgeführt und erneut ausgeführt wird, solange die Bedingung als wahr ausgewertet wird. Sie können eine Block-Anweisung verwenden, um mehrere Anweisungen auszuführen.
condition
Ein Ausdruck, der nach jedem Durchlauf der Schleife ausgewertet wird. Wenn diese Bedingung als wahr ausgewertet wird, wird statement erneut ausgeführt. Wenn die Bedingung als falsch ausgewertet wird, wird die Ausführung mit der Anweisung nach der do...while-Schleife fortgesetzt.
Wie andere Schleifenanweisungen können Sie Steuerflussanweisungen innerhalb von statement verwenden:
break
continue
Die do...while-Anweisung erfordert ein Semikolon am Ende, aber der automatische Semikolon-Einfügeprozess kann eines einfügen, wenn das Fehlen eines Semikolons zu ungültiger Syntax führt.
Im folgenden Beispiel durchläuft die do...while-Schleife mindestens einmal und wiederholt sich, bis i nicht mehr kleiner als 5 ist.
i
let result = ""; let i = 0; do { i += 1; result += `${i} `; } while (i > 0 && i < 5); // Despite i === 0 this will still loop as it starts off without the test console.log(result);
Da die Anweisung immer einmal ausgeführt wird, ist do...while (false) dasselbe wie die Ausführung der Anweisung selbst. Dies ist ein häufiges Idiom in C-ähnlichen Sprachen, das es Ihnen ermöglicht, break zu verwenden, um aus einer Verzweigungslogik frühzeitig auszusteigen.
do...while (false)
do { if (!user.loggedIn) { console.log("You are not logged in"); break; } const friends = user.getFriends(); if (!friends.length) { console.log("No friends found"); break; } for (const friend of friends) { handleFriend(friend); } } while (false); // The rest of code
In JavaScript gibt es einige Alternativen, wie die Verwendung einer beschrifteten Block-Anweisung mit break:
handleFriends: { if (!user.loggedIn) { console.log("You are not logged in"); break handleFriends; } const friends = user.getFriends(); if (!friends.length) { console.log("No friends found"); break handleFriends; } for (const friend of friends) { handleFriend(friend); } }
Oder die Verwendung einer Funktion:
function handleFriends() { if (!user.loggedIn) { console.log("You are not logged in"); return; } const friends = user.getFriends(); if (!friends.length) { console.log("No friends found"); return; } for (const friend of friends) { handleFriend(friend); } }
In einigen Fällen kann es sinnvoll sein, eine Zuweisung als Bedingung zu verwenden, wie hier:
do { // … } while ((match = regexp.exec(str)));
Aber wenn Sie dies tun, gibt es Abstriche bei der Lesbarkeit. Die while-Dokumentation hat einen Abschnitt Verwendung einer Zuweisung als Bedingung mit unseren Empfehlungen.
while
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
for