for 文-回数がわかっている繰り返し
<body>
<script>
for (var i=1 ; i<=10 ; i++)
{
document.write("繰り返し文です。<br>");
}
</script>
</body>
for (var iの初期値 ; 繰り返し条件 ; iの値の増加方法 ) { 処理 }
繰り返しを定義するのはfor
forの後の小括弧( )内に、繰り返し方法を指定
中括弧{ }内に繰り返す処理を記述
forの後の小括弧( )内の3つの区分
最初の区分では、変数「i」の初期値(繰り返しの始まり)を指定
ここでは1を代入
そして半角セミコロン;で区切り
次の区分では、繰り返しの条件を指定
ここではiの値が10以下の場合に繰り返すよう指定してます。
そして半角セミコロン;で区切り
最後の区分、iの値の増減を指定
通常は左記のようにi++(+1の意味)と書く
→この指定で、for文内の処理が1回繰り返すごとにiの値が1プラスされていく。
iの値が1から始まって、10になるまで繰り返されるという訳。
もう少し詳しく解説してみますね。
i++(+1の意味)は
for文内の処理が1回繰り返すごとにiの値が1プラスされていく。
と上に書きました。
これをブラウザ上に書きだしてみました。
iの値が1から始まって、順番に+1で数字が10になるまで繰り返されてますよね。
これは、i<=10 だからなんですけど、
これ10回繰り返すって意味ではない。
i が10になるまで繰り返しなさいって意味なんです。だから
for (var i=0 ; i<=10 ; i++)にすると
0~10まで(11回)繰り返されます。
for (var i=2 ; i<=10 ; i++)なら
2~10まで(9回)繰り返す。
サンプルを見てみると、
「繰り返し文です。」と言う文字が10行表示。
どういう仕組みかというと
解説→
<body>
<script>
for (var i=1 ; i<=10 ; i++)
{
document.write(i + "<br>");
}
</script>
</body>
これは上記のソースを、
10回繰り返す数字にしてみました。
解説→
while 文-条件に合うまで繰り返す
<body>
<script>
var number=0; //連番を入れる変数
var gokei=0; //連番を合計した数字を入れる変数
//gokeiが5桁(10000)より少ない間繰り返す
while ( gokei < 10000 )
{
number++; gokei = gokei + number;
}
//5桁に達した時点の数を書き出し
document.write(number);
</script>
</body>
while ( 繰り返しの条件 ) { 処理 }
変数numberには連番を、gokeiにはnumberを加えていった合計を代入します。
最初はどちらも0からスタートするので、あらかじめ0を指定して代入してるよ。
そして、whileで条件まで繰り返すよって宣言してます。
後の小括弧( )の中に繰り返し条件を記入
→例題の場合は、gokeiが5桁(10000)より少なければ
中括弧内の処理を繰り返すようにした。
中括弧内の処理の意味は、
numberは1づつ増えます、と指定して
gokeiにnumberの値(1づつ増える)を足していくように書いてあります。
(gokei = gokei + number は変数の章(n=n+2など)参考下さい)
ためしに書いてみると
まずgokei=0+0 そこにnumber++によって0+1に換わると…
gokeiは1になる この1が=の後ろのgokeiに入って
gokei=1+0 これにnumber++によって0+1+1に換わると…
gokeiは3になる これがgokeiが1000になるまで続く
*=の前と後ろのgokeiを解説上わかりやすくするために
前のgokeiには下線を付けました。
下線の付いてるgokeiと付いてないgokeiとか本来
区別なんてないので、悩まないでスルーしてください。
最後に、5桁になった時点でのnumberの値を書き出す指令をしてます。
ちなみに答えは141。。。
繰り返し回数が分からない場合、
ある一定の条件を指定して、
その条件を満たしている間繰り返すという方法をとる。
例えば「1+2+3+…で幾つまで足すと
合計が5桁(10000)になるか」
と言う問題を解いてみました。
解説→
while文は、ローン返済の計算をしたり、 ページ内のリンク数を調べたりといった色々なケースで活用することができます