[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/do...while [Back]  [Original]

do...while - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

do...while

Baseline
Weitgehend verfgbar

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.

In diesem Artikel

Probieren Sie es aus

let result = "";
let i = 0;

do {
  i += 1;
  result += i;
} while (i < 5);

console.log(result);
// Expected output: "12345"

Syntax

js
do
  statement
while (condition);
statement

Eine 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.

condition

Ein 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.

Beschreibung

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.

Beispiele

Verwendung von do...while

Im folgenden Beispiel durchluft die do...while-Schleife mindestens einmal und wiederholt sich, bis i nicht mehr kleiner als 5 ist.

js
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);

Verwendung von false als do...while-Bedingung

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.

js
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:

js
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:

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

Verwendung einer Zuweisung als Bedingung

In einigen Fllen kann es sinnvoll sein, eine Zuweisung als Bedingung zu verwenden, wie hier:

js
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.

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# sec-do-while-statement

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page