| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/do...while | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.
Die do...while-Anweisung erstellt eine Schleife, die eine angegebene Anweisung ausfhrt, solange die Prfbedingung als wahr ausgewertet wird. Die Bedingung wird nach der Ausfhrung der Anweisung ausgewertet, was dazu fhrt, dass die angegebene Anweisung mindestens einmal ausgefhrt wird.
let result = "";
let i = 0;
do {
i += 1;
result += i;
} while (i < 5);
console.log(result);
// Expected output: "12345"
do
statement
while (condition);
statementEine Anweisung, die mindestens einmal ausgefhrt und erneut ausgefhrt wird, solange die Bedingung als wahr ausgewertet wird. Sie knnen eine Block-Anweisung verwenden, um mehrere Anweisungen auszufhren.
conditionEin Ausdruck, der nach jedem Durchlauf der Schleife ausgewertet wird. Wenn diese Bedingung als wahr ausgewertet wird, wird statement erneut ausgefhrt. Wenn die Bedingung als falsch ausgewertet wird, wird die Ausfhrung mit der Anweisung nach der do...while-Schleife fortgesetzt.
Wie andere Schleifenanweisungen knnen Sie Steuerflussanweisungen innerhalb von statement verwenden:
break stoppt die Ausfhrung von statement und geht zur ersten Anweisung nach der Schleife.continue stoppt die Ausfhrung von statement und bewertet condition erneut.Die do...while-Anweisung erfordert ein Semikolon am Ende, aber der automatische Semikolon-Einfgeprozess kann eines einfgen, wenn das Fehlen eines Semikolons zu ungltiger Syntax fhrt.
Im folgenden Beispiel durchluft die do...while-Schleife mindestens einmal und wiederholt sich, bis i nicht mehr kleiner als 5 ist.
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 ausgefhrt wird, ist do...while (false) dasselbe wie die Ausfhrung der Anweisung selbst. Dies ist ein hufiges Idiom in C-hnlichen Sprachen, das es Ihnen ermglicht, break zu verwenden, um aus einer Verzweigungslogik frhzeitig auszusteigen.
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 Fllen 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.
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-do-while-statement |
Der Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |