libro
www.tuyano.com
初心者のためのJavaScriptプログラミング入門

制御構文 (3/6)

作成:2010-03-31 21:06
更新:2010-05-11 17:00

■条件で繰り返す「while」

続いて、「繰り返し」の構文についてです。繰り返しにはいくつかの種類がありますが、もっともシンプルなのは、条件をチェックして繰り返す「while」でしょう。これには2通りの書き方があります。(下のリスト部分を参照)

どちらも、whileの後に()があり、そこに条件となる値や変数、式などを用意します。そして、その値が正しい(真偽値のtrueである)間、その後の処理を繰り返します。値が正しくなくなる(falseになる)と、繰り返しを抜けて次へ進みます。

2つの書き方の違いは、「いつ、条件をチェックするか」です。最初にチェックする書き方と、最後にチェックする書き方があるわけです。両者の違いは、

最初にチェックする書き方では、繰り返しに入る前にチェックをしますから、最初から条件がfalseだった場合は、繰り返し部分を全く実行せずに次へ進んでしまうこともあります。

逆に最後にチェックする書き方だと、まず繰り返し部分を実行してから条件をチェックしますから、最初から条件がfalseだったとしても、必ず1度は処理を実行することになります。

――このようになります。まぁ、一般的には「最初にチェックする」繰り返しが基本と考えて間違いないでしょう。「最後にチェックする」書き方は、特別な理由がある時だけ使う、と考えましょう。

○利用例○

下のリスト部分に掲載しているのは、変数Nの値が素数かどうかをチェックするスクリプトです。素数というのは、1とその数自身以外の整数で割ることのできない値ですね。これは、実際に2~その数未満のすべての整数で割ってみればわかります。割った余りがゼロになることが1度でもあれば、それは素数じゃないということです。

ここでは、numの値を2から順に増やしながら繰り返しを実行しています。条件部分は、while(num < N)というようになっていますね。つまり、numの値が変数Nより小さい間、繰り返しを続けている、ということになります。

numの値は、繰り返しの最後で1増やしていますが、これは「num++;」というように書かれていますね。この「++」というのは「インクリメント演算子」というもので、変数の値を1増やす働きをします。同様に「--」という演算子(デクリメント演算子)というものもあって、これは変数の値を1減らします。プログラミングでは、「1増やす」「1減らす」という処理はよく使いますので、ここであわせて覚えておきましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

・while文の基本形(1)
while ( 条件 )
    ……実行する処理……

・while文の基本形(2)
do
    ……実行する処理……
while ( 条件 );


※サンプルスクリプト

<html>
	<head>
		<script type="text/javascript">
		<!--
		var N = 887;
		
		var num =2;
		var result = true;
		while(num < N){
			if (N % num  == 0){
				result = false;
				break;
			}
			num ++;
		}
		if (result)
			alert(N + "は、素数です。");
		else
			alert(N + "は、素数じゃないです。");	
		//-->
		</script>
	</head>
	<body>
		<H1>TEST.</H1>
	</body>
</html>

※関連コンテンツ

「初心者のためのJavaScriptプログラミング入門」に戻る