Für, Während und Do Während Schleifen in JavaSkript mit Beispiel

⚡ Intelligente Zusammenfassung

For-, While- und Do-While-Schleifen in JavaEin Skript wiederholt einen Anweisungsblock, ohne Code zu duplizieren. Dieser Artikel erklärt die einzelnen Syntaxelemente, zeigt lauffähige Beispiele mit der erwarteten Ausgabe, stellt die for-in- und for-of-Schleifen vor und behandelt break, continue sowie die Vermeidung von Endlosschleifen.

  • 🔁 Hauptzweck: Eine Schleife führt dieselben Anweisungen wiederholt für eine festgelegte Anzahl von Durchgängen oder solange eine bestimmte Bedingung erfüllt ist aus.
  • 🔢 für Schleife: Drei Ausdrücke im Header kümmern sich um die Initialisierung, den Exit-Test und die Aktualisierung, die für eine bekannte Iterationsanzahl geeignet ist.
  • ❓ while-Schleife: Die Bedingung wird vor jedem Durchlauf geprüft, sodass der Code möglicherweise nie ausgeführt wird, wenn die Bedingung zu Beginn falsch ist.
  • 1️⃣ do…while Schleife: Der Körper durchläuft immer mindestens einen Durchlauf, da der Zustand nach dem ersten Durchlauf beurteilt wird.
  • 🔑 for…in Loop: Iteriert über die Schlüssel eines Objekts und gibt Eigenschaftsnamen anstelle von Werten zurück.
  • 📦 for…of Schleife: Iteriert über die Werte von Arrays, Strings, Maps und anderen iterierbaren Objekten.
  • ⛔ Ablaufsteuerung: Die break-Anweisung verlässt eine Schleife sofort, während continue zur nächsten Iteration springt.

For While- und Do While-Schleife in JavaSkript

Was ist eine Schleife in JavaSkript?

Schleifen sind nützlich, wenn Sie dieselben Codezeilen wiederholt ausführen müssen, für eine bestimmte Anzahl von Malen oder solange eine bestimmte Bedingung erfüllt ist. Angenommen, Sie möchten 100 Mal eine „Hallo“-Nachricht auf Ihrer Webseite eingeben. Natürlich müssen Sie dieselbe Zeile 100 Mal kopieren und einfügen. Wenn Sie stattdessen Schleifen verwenden, können Sie diese Aufgabe in nur 3 oder 4 Zeilen erledigen.

Jede Schleife besteht unabhängig von der Syntax aus denselben drei Teilen: einem Startwert, einer Bedingung, die entscheidet, ob ein weiterer Durchlauf erfolgt, und einer Aktualisierung, die die Schleife ihrem Ausgang nähert. Das folgende Diagramm veranschaulicht diesen sich wiederholenden Zyklus.

Verwenden Sie Schleifen in Javascript

Verschiedene Arten von Schleifen in JavaSkript

Es gibt hauptsächlich vier Arten von Schleifen JavaSkript.

  1. for-Schleife
  2. for/in Schleife
  3. while-Schleife
  4. do… while-Schleife

Modernes JavaDas Skript fügt eine for…of-Schleife zur direkten Iteration über Werte hinzu, sodass in der Praxis fünf Formen zur Verfügung stehen. Die folgende Tabelle zeigt, welche in einer bestimmten Situation zu verwenden ist.

Loop Zustand geprüft Mindestausführungen am besten geeignet für
für Vor jedem Durchgang 0 Eine bekannte Anzahl von Wiederholungen
und gleichzeitig die Vor jedem Durchgang 0 Eine unbekannte Anzahl, die durch einen Zustand bedingt ist
tun…während Nach jedem Durchgang 1 Menüs und Eingabeaufforderungen, die einmalig ausgeführt werden müssen
für in Vor jedem Durchgang 0 Auslesen der Schlüssel eines Objekts
für…von Vor jedem Durchgang 0 Auslesen der Werte eines Arrays oder einer Zeichenkette

for-Schleife

Syntax:

for(statement1; statement2; statment3)
{
lines of code to be executed
}
  1. Die Anweisung 1 wird zuerst ausgeführt, noch bevor die loo-Anweisung ausgeführt wird.ping Code. Diese Anweisung wird also normalerweise verwendet, um Variablen Werte zuzuweisen, die innerhalb der Schleife verwendet werden.
  2. Die Anweisung2 ist die Bedingung zum Ausführen der Schleife.
  3. Die Anweisung 3 wird jedes Mal nach dem Öffnen der Toilette ausgeführt.ping Der Code wird ausgeführt.

Probieren Sie es selbst aus:

<html>
<head>
	<script type="text/javascript">
		var students = new Array("John", "Ann", "Aaron", "Edwin", "Elizabeth");
		document.write("<b>Using for loops </b><br />");
		for (i=0;i<students.length;i++)
		{
		document.write(students[i] + "<br />");
		}
	</script>
</head>
<body>
</body>
</html>

Ausgang:

Using for loops
John
Ann
Aaron
Edwin
Elizabeth

Der Zähler beginnt bei 0, weil der erste Index eines Array ist null, und die Bedingung verwendet students.length, sodass sich die Schleife automatisch anpasst, wenn Namen hinzugefügt oder entfernt werden.

while-Schleife

Syntax:

while(condition)
{
lines of code to be executed
}

Die „while-Schleife“ wird ausgeführt, solange die angegebene Bedingung erfüllt ist. Innerhalb der while-Schleife sollten Sie die Anweisung einfügen, die die Schleife zu einem bestimmten Zeitpunkt beendet. Andernfalls wird Ihre Schleife nie beendet und Ihr Browser kann abstürzen.

Probieren Sie es selbst aus:

<html>
<head>
	<script type="text/javascript">
		document.write("<b>Using while loops </b><br />");
		var i = 0, j = 1, k;
		document.write("Fibonacci series less than 40<br />");
		while(i<40)
		{
			document.write(i + "<br />");
			k = i+j;
			i = j;
			j = k;
		}
	</script>
</head>
<body>
</body>
</html>

Ausgang:

Using while loops
Fibonacci series less than 40
0
1
1
2
3
5
8
13
21
34

⚠️ Warnung: Eine while-Schleife, deren Bedingung nie falsch wird, friert den Browser-Tab ein. Stellen Sie stets sicher, dass eine Variable innerhalb der Schleife die Bedingung in Richtung „falsch“ verschiebt, und verwenden Sie einen Sicherheitszähler, wenn der Abbruch von externen Daten abhängt.

do… while-Schleife

Syntax:

do
{
block of code to be executed
} while (condition)

Die do…while-Schleife ist der while-Schleife sehr ähnlich. Der einzige Unterschied besteht darin, dass der Codeblock in der do…while-Schleife einmal ausgeführt wird, noch bevor die Bedingung geprüft wird.

Probieren Sie es selbst aus:

<html>
<head>
	<script type="text/javascript">
		document.write("<b>Using do...while loops </b><br />");
		var i = 2;
		document.write("Even numbers less than 20<br />");
		do
		{
			document.write(i + "<br />");
			i = i + 2;
		}while(i<20)
	</script>
</head>
<body>
</body>
</html>

Ausgang:

Using do...while loops
Even numbers less than 20
2
4
6
8
10
12
14
16
18

Der Unterschied wird sichtbar, wenn die Bedingung von Anfang an falsch ist. Eine while-Schleife gibt nichts aus, wohingegen eine do…while-Schleife vor dem Stopp immer noch eine Zeile ausgibt.ping.

for…in loop

Die for…in-Schleife durchläuft die aufzählbaren Eigenschaftsnamen eines Objekts. In jedem Durchlauf wird der nächste Schlüssel der Schleifenvariablen zugewiesen, und der Wert wird mithilfe der Klammernotation ausgelesen.

const student = {
    name: "Ann",
    age: 21,
    course: "JavaScript"
};

for (const key in student) {
    console.log(key + " : " + student[key]);
}

Ausgang:

name : Ann
age : 21
course : JavaScript

💡 Tipp: Vermeiden Sie `for…in` für Arrays. Es gibt Indexwerte als Zeichenketten zurück und greift auch auf geerbte Eigenschaften zu, was zu unerwarteten Ergebnissen führen kann. Verwenden Sie stattdessen `for…of` oder eine klassische `for`-Schleife für Arrays.

for…of-Schleife und forEach

Die for…of-Schleife liest die Werte beliebiger iterierbarer Objekte, einschließlich Arrays, Strings, Maps und Sets. Die forEach-Methode erzielt dasselbe Ergebnis mit einer Callback-Funktion und ermöglicht den Zugriff auf den Index.

const students = ["John", "Ann", "Aaron"];

// for...of reads each value directly
for (const name of students) {
    console.log(name);
}

// forEach supplies the value and the index
students.forEach(function (name, index) {
    console.log(index + " - " + name);
});

// strings are iterable too
for (const letter of "Ann") {
    console.log(letter);
}

Ausgang:

John
Ann
Aaron
0 - John
1 - Ann
2 - Aaron
A
n
n

Ein praktischer Unterschied ist wichtig: Innerhalb von for…of können break und continue ausgeführt werden, innerhalb von forEach jedoch nicht, da jeder Callback eine separate Funktion ist.

Unterbrechung und Fortsetzung der Aussagen

Zwei Schlüsselwörter verändern den normalen Ablauf einer Schleife. Die `break`-Anweisung verlässt die Schleife vollständig, und die `continue`-Anweisung bricht den aktuellen Schleifendurchlauf ab und springt zum nächsten.

const numbers = [4, 7, 10, 13, 16, 19];

// continue: skip odd numbers
for (const n of numbers) {
    if (n % 2 !== 0) {
        continue;
    }
    console.log("even: " + n);
}

// break: stop at the first value above 12
for (const n of numbers) {
    if (n > 12) {
        console.log("first value above 12: " + n);
        break;
    }
}

Ausgang:

even: 4
even: 10
even: 16
first value above 12: 13

Schleifen kommen in fast jedem Skript vor, das Sie schreiben werden. Fahren Sie fort mit dem praktisch JavaSkriptcodebeispiele, erneut besuchen JavaSkript-Array-Methoden für die auf diesen Schleifen aufbauenden Iterationshilfsfunktionen und lesen Sie intern und extern JavaSkript um zu entscheiden, wo das fertige Drehbuch gespeichert werden soll.

Häufig gestellte Fragen

Eine while-Schleife prüft die Bedingung vor dem ersten Durchlauf, sodass der Schleifenkörper möglicherweise nie ausgeführt wird. Eine do…while-Schleife prüft die Bedingung im Anschluss und garantiert somit mindestens eine Ausführung des Schleifenblocks.

Ja. Eine innere Schleife wird für jeden Durchlauf der äußeren Schleife vollständig ausgeführt; so werden Tabellen und Raster erstellt. Verwenden Sie unterschiedliche Zählernamen, um ein Überschreiben des äußeren Index zu vermeiden.

Schließen Sie den betroffenen Tab und korrigieren Sie anschließend die Bedingung oder die Aktualisierungsanweisung, bevor Sie die Seite neu laden. Durch Hinzufügen eines Zählers, der nach einer maximalen Anzahl von Durchläufen abbricht, wird ein wiederholter Fehler während der Entwicklung verhindert.

Die klassische for-Schleife ist bei großen Arrays minimal schneller, da sie den Overhead von Callback-Funktionen vermeidet. Der Unterschied ist jedoch bei weniger als einigen Tausend Elementen vernachlässigbar, daher sollte die Lesbarkeit Vorrang haben.

Sie verwenden üblicherweise die Standardeinstellung for…of oder map. RevBeachten Sie den Vorschlag, wenn die Aufgabe einen Index, einen vorzeitigen Abbruch oder einen garantierten ersten Durchlauf benötigt, da in diesen Fällen eine andere Form erforderlich ist.

Eine for await…of-Schleife liest Blöcke aus einer gestreamten Antwort und fügt jedes Token an die Seite an. Sie ist das asynchrone Gegenstück zu for…of und erfordert eine asynchrone Funktion.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: