while文(反復文)
反復文の一つなwhile文について学習しましよう。
反復文ではバリューが真であるかぎりずっと反復をします。
例えば、 1を200回スクリンに出力する時に1を直接200回タイピングしなく、反復文を使って簡単にできます。
while文の使い方
while(条件式){
条件が真の時のコード
}
では、1から2まで出力してみましょう。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>coreasur - JavaScript</title>
<script>
a = 1;
while(a <= 10){
document.write(a);
a++;
}
</script>
</head>
<body>
</body>
</html>
結果
上のソースを見ると変数aのバリューは1を代入し、条件では変数aが10より小さいか等しい条件があります。そして変数aのバリューを++を利用し1ずつ増やします。
上のソースでa++がなかったら変数aのバリューが10になれないんで、while文は永遠に作動します。つまり、無限ループになります。
次のソースは1から10までの合計を出力するソースです。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>coreasur - JavaScript</title>
<script>
a = 1;
sum = 0;
while(a <= 10){
sum += a;
document.write('累積合'+sum+"<br />");
a++;
}
</script>
</head>
<body>
</body>
</html>
結果
今度は、do ~ while文です。
do ~ while文
上のwhile文では、条件式が真であると命令文を実行しました、do ~ while文はまず一回命令文を実行してから条件式が死んであると、命令文を実行します。
do ~ while文の構造
do{
条件式が真の時の命令文。
}
while(条件式)
条件式が真の時の命令文。
}
while(条件式)
ではソースでみてみましょう。
a = 1;
do{
document.write(a);
}
while(a==10)
上のソースを見ると変数aのバリューは1です。 条件式を見るとa==1です。 つまり、変数aのバリューが10と同じの時命令文を実行します。
しかし、条件式の a==10はa++がないから絶対に真になれないです。しかしdo~while文は一回は命令文を実行しますので、一回は実行します。
つまり、変数aのバリューを一回は実行してから条件が真か偽かを確認します。
では、テストしてみましょう。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>coreasur - JavaScript</title>
<script type="text/javascript">
a = 1;
do{
document.write(a);
a++;
}
while(a==10)
</script>
</head>
<body>
</body>
</html>
結果
結果を見ると条件が偽ですがでも一回は実行するんで変数aのバリューな1が出力されます。
次はfor文です。