aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/javascript/guide/loop_statements/while_statement/index.html
blob: 77fd191f75ba637fbcaa2a913fe137e01abdaf7e (plain)
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
---
title: while 文
slug: Web/JavaScript/Guide/Loop_Statements/while_Statement
---
<h3 id="while_.E6.96.87" name="while_.E6.96.87">while 文</h3>
<p><code>while</code> 文は、指定した条件が true に評価される限り文を実行します。<code>while</code> 文は次のように使用します。</p>
<pre class="eval">while (condition)
   statement
</pre>
<p>条件が false になるとループ内の <code>statement</code> の実行が停止し、ループの後に続く文にコントロールが渡されます。</p>
<p>ループの <code>statement</code> を実行する前に条件がテストされます。条件が true を返すと <code>statement</code> が実行され、再び条件がテストされます。条件が false を返すと、実行が停止され、<code>while</code> の後に続く文にコントロールが渡されます。</p>
<p>複数の文を実行するにはブロック文 ({ ... }) を用いて文をグループ化してください。</p>
<p><strong>例 1</strong><br>
  次の <code>while</code> ループでは <code>n</code> が 3 より小さい限り反復されます。</p>
<pre class="eval">n = 0;
x = 0;
while (n &lt; 3) {
   n++;
   x += n;
}
</pre>
<p>それぞれの反復で、ループは <code>n</code> をインクリメントし、その値を <code>x</code> に加えています。その結果、<code>x</code><code>n</code> は次の値をとります。</p>
<ul>
  <li>第 1 段階終了後:<code>n</code> = 1、<code>x</code> = 1</li>
  <li>第 2 段階終了後:<code>n</code> = 2、<code>x</code> = 3</li>
  <li>第 3 段階終了後:<code>n</code> = 3、<code>x</code> = 6</li>
</ul>
<p>第 3 段階が完了すると条件 <code>n</code> &lt; 3 が true ではなくなっているため、ループは終了します。</p>
<p><strong>例 2</strong><br>
  無限ループは避けてください。ループの条件が最終的には false になることを確認してください。そうしないとループが終了しなくなります。次の <code>while</code> ループ内の文は永久に実行されます。条件が決して false にならないためです。</p>
<pre class="eval">while (true) {
   alert("Hello, world");
}
</pre>
<p>{{ PreviousNext("JavaScript/Guide/Loop_Statements/do...while_Statement", "JavaScript/Guide/Loop_Statements/label_Statement") }}</p>