1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
---
title: while
slug: Web/JavaScript/Reference/Statements/while
tags:
- JavaScript
- Statement
translation_of: Web/JavaScript/Reference/Statements/while
---
<div>{{jsSidebar("Anweisungen")}}</div>
<p>Die <strong>while-Anweisung (Engl. <em>statement</em>)</strong> beschreibt eine Schleife, die solange durchlaufen wird wie die Schleifenbedingung wahr (Engl. <em><strong>true</strong></em>) ergibt. Die Schleifenbedingung (Engl. <strong><em>condition</em></strong>) wird am Anfang der Schleife ausgewertet.</p>
<div>{{EmbedInteractiveExample("pages/js/statement-while.html")}}</div>
<h2 id="Syntax">Syntax</h2>
<pre class="syntaxbox">while (<em>condition</em>) {
<em>statement</em>
}</pre>
<dl>
<dt><code>condition</code></dt>
<dd>Die Schleifenbedinung wird zu Anfang eines Schleifendurchlaufs ausgewertet. Ergibt die Auswertung wahr (<em><strong>true)</strong></em>, dann wird der Schleifenkörper durchlaufen (<code>statement</code> wird ausgeführt). Ist die Bedingung falsch (<strong><em>false)</em></strong>, dann fährt das Program mit der ersten Anweisung nach der <em><strong>while</strong></em><strong> </strong>Schleife<strong> </strong>fort.</dd>
<dt><code>statement</code></dt>
<dd>Eine optionale Anweisung wird ausgeführt solange die Bedingung wahr (<em><strong>true</strong></em>) ist. Mehrere Anweisungen müssen in einer <a href="/en-US/docs/JavaScript/Reference/Statements/block" title="JavaScript/Reference/Statements/block">block</a> Anweisung (<code style="font-style: normal;">{ ... }</code>) gruppiert werden.<br>
<br>
Bemerkung: Ein break-Statement kann eingesetzt werden, um die Schleife vorzeitig zu beenden, bevor die Bedingung auf <code>false</code> wechselt.</dd>
</dl>
<h2 id="Beispiele">Beispiele</h2>
<p>Die folgende <code>while</code> Schleife wird so oft durchlaufen wie <code>n</code> kleiner drei ist.</p>
<pre class="brush:js">var n = 0;
var x = 0;
while (n < 3) {
n++;
x += n;
}</pre>
<p>In jedem Durchlauf wird <code>n</code> inkrementiert und zu <code>x</code> addiert. Die Schleifendurchläufe können wie folgt beschrieben werden:</p>
<ul>
<li>Nach 1. Durchlauf: <code>n</code> = 1 und <code>x</code> = 1</li>
<li>Nach 2. Durchlauf: <code>n</code> = 2 und <code>x</code> = 3</li>
<li>Nach 3. Durchlauf: <code>n</code> = 3 und <code>x</code> = 6</li>
</ul>
<p>Nach dem dritten Durchlauf ist die Schleifenbedingung nicht mehr wahr, und die Schleife wird beendet.</p>
<h2 id="Spezifikationen">Spezifikationen</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Spezifikation</th>
<th scope="col">Status</th>
<th scope="col">Bemerkung</th>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-while-statement', 'while statement')}}</td>
<td>{{Spec2('ESDraft')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-while-statement', 'while statement')}}</td>
<td>{{Spec2('ES6')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-12.6.2', 'while statement')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ES3', '#sec-12.6.2', 'while statement')}}</td>
<td>{{Spec2('ES3')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ES1', '#sec-12.6.1', 'while statement')}}</td>
<td>{{Spec2('ES1')}}</td>
<td>Initiale Definition</td>
</tr>
</tbody>
</table>
<h2 id="Browserkompatibilität">Browserkompatibilität</h2>
<p>{{Compat("javascript.statements.while")}}</p>
<h2 id="Siehe_auch">Siehe auch</h2>
<ul>
<li><a href="/de/docs/Web/JavaScript/Reference/Statements/do...while"><code>do...while</code></a></li>
<li>{{jsxref("Statements/for", "for")}}</li>
</ul>
|