while文
前項では回数の分かっている場合の繰り返し文を説明しました。 しかし、いつも繰り返し回数が分かっている訳ではありません。 このページでは、繰り返し回数が分からない場合の処理について説明してみます。
while文-条件に合うまで繰り返す
繰り返し回数が分からない場合は、 ある一定の条件を指定し、その条件を満たしている間繰り返すという方法をとります。 例えば「1+2+3+…で幾つまで足すと合計が5桁になるか」と言う問題を解いてみましょう。
HTMLファイルを作り、body内に以下のように記入してみて下さい。
<script> var num=0; //連番を入れる変数 var gokei=0; //連番を合計した数字を入れる変数 //gokeiが5桁(10000)より少ない間繰り返す while ( gokei < 10000 ){ num++; gokei = gokei + num; } //5桁に達した時点の数を書き出し document.write(num); </script>
サンプル(別窓)
サンプルを見てみると、141という答えが得られました。 実際に答えが合っているかfor文を使って確かめてみました。 ちゃんと合っています。
では上のソースについて詳しく見てみましょう。
while文の書き方
まずは2つの変数の宣言です。 numには連番を、gokeiにはnumを加えていった合計を代入していきます。
次にwhile文が登場します。 whileの後に括弧( )がありますが、その中に条件を記入します。 上記の場合は、gokeiが10000より少なければ、 中括弧内の処理を繰り返すことになります。 whileの書き方をまとめると、下のようになります。
- while ( 繰り返しの条件 ) { 処理 }
- 条件を満たしている間、中括弧内の処理を繰り返します。
中括弧内の処理を見てみると、まず最初にnumの値に1加えています。 そしてgokeiに加えています。 この処理の順番をひっくり返すと、 numの値が1つ大きくなってしまうので失敗です。 どうしてそうなるかは考えてみて下さい。
最後に、5桁になった時点でのnumの値を書き出しています。
このようなwhile文は、ローン返済の計算をしたり、 ページ内のリンク数を調べたりといった色々なケースで活用することができます。 for文と共にしっかり覚えておきましょう。
次のページでは基礎編の最後として、 JavaScriptを外部ファイルに記入する方法を説明いたします。