Browse By

制御命令について その2 while / do…while / for / break / continue

Pocket

条件式によってループする命令

条件分岐処理と同夜に、よく利用されるのが繰り返し処理です。繰り返し処理にはfor、for…in、while、do…while命令があります。

条件式によってループする while / do…while 命令

while( 条件式 ){
    // 条件式がrtrueの場合に実行する命令
}

do {
    // 条件式1がrtrueの場合に実行する命令
} while( 条件式 );

while命令とdo…while命令は一件同じに見えますが、while命令はループの最初で条件式を判定する前置判定、do…whileはループの最後に条件式の判定をする後置判定となります。

また繰り返しの命令は、条件をうまく設定しなければ命令が無限にループしてしまう場合がありますので注意が必要です。

指定回数のみループ処理をする for 命令

条件式の真偽に応じてループするwhile命令に対して、予め繰り返し回数を指定することができるのがfor命令です。

for (初期化式; ループ条件式; 増減式){
    // 実行される命令
}

// 例 
// xが1〜4まで増加し、その間alertが順に実行される
// xが5になった際にループ条件式(x < 5)が当てはまらなくなるので処理から抜けます
for (var x = 1; x < 5; x++){
    alert(”xは”+x);
}

// カンマを使って複数の値を初期化式で指定することもできます
for (var x = 1, y = 3; x < 5; x++, y++ ){
    // 実行する命令
}

配列内の要素を順に処理する for…in 命令

for (仮変数 in 配列またはオブジェクト){
    // 実行される命令
}

// 例1
var color = ['red','blue','green'];
for (var i in color){
    alert("色は"+i+"です。");
}

// 例2
var obj = {heigth: 100, width:500; };
for (var j in obj){
    alert("jは"+obj[j]+"です。");
}

ループのスキップ、途中終了 break / continue 命令

ループ処理では予め決められた条件を満たした場合処理が終了しますが、特定の条件を満たした場合にループを中断することができます。

var number == 50;
for (var i = 0; i <= 100; i++){
    if(i == number) break;    
}

本来ならばiが101になるまでiが増加してループが行われるはずですが、i == number になったタイミングでforは終了します。

var number == 10;
for (var i = 0; i <= 100; i++){
    if(i % number == 0) continue;
    alert("回数は"+i+"です");    
}

上記の場合、i % number == 0が見たされた場合、後続の処理はスキップされます。特定の条件を満たした場合にのみ処理をさせたくない場合などに使用します。ここでは10の倍数はアラートされないことになります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>