continue文

広告

continue文はbreak文と同様に繰り返し処理の中で使われる文で、continue文が実行されると繰り返し処理のブロック内でそれ以降の処理を実行せずに次の条件式の評価を行います。書式は次の通りです。

continue;

continue文が実行されると、繰り返し処理のブロックの中でcontinue文以降に記述されている残りの文は実行されずに次の繰り返し処理へ進みます。continue文はfor文、while文、do..while文、for..in文の中でしか使用することはできません。

while文を例に処理がどのように進むのかを確認してみます。

while(条件式){
  実行される文;
  実行される文;

  continue;

  実行される文;   // continueが実行されると、この文は実行されない
  実行される文;   // continueが実行されると、この文は実行されない

  // continueが実行されるとここへ処理が移る
}

上記ではwhile文のブロック内に複数の文が記述されていますが、continue文が実行されるとそれ以降に書かれている文は実行せずにブロックの最後まで処理が飛ぶと考えて下さい。そして次の繰り返し処理へ進みます。while文の場合であれば改めて条件式の評価を行って繰り返しを継続するかどうか判断します。

ではfor文を使った具体的なサンプルで再度確認します。

for (var i = 0; i < 10; i++){
  alert(i);
}

上記ではfor文を使って10回繰り返しをします。そして1回繰り返しが行われるたびに変数「i」の値を表示します。

では変数「i」の値が奇数だった場合には変数「i」の値を表示しないようにしてみます。

for (var i = 0; i < 10; i++){
  if (i % 2 == 1){
    continue;
  }

  alert(i);
}

繰り返し処理の中で変数「i」の値が奇数だった場合にはcontinue文を実行しています。continue文が実行されると、繰り返し処理の中の残りの文を実行せずに次の繰り返し処理へ進みます。今回の場合で言えば残りの文とは「alert(i);」ですので結果的に変数「i」が奇数だった場合には画面に変数「i」の値を表示しません。次の繰り返し処理へ進むとfor文の場合には変化式を実行した上で条件式を評価して繰り替えし処理を継続するかどうか判断します。

break文とcontinue文をうまく利用することで繰り返し処理の流れを柔軟にコントロールすることができますが、処理の流れが複雑にもなりますので思った通りに処理させるには注意して使うようにして下さい。

サンプルコード

では簡単なサンプルで試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>JavaScript テスト</title>
</head>
<body>

<script type="text/javascript" src="./js/script10_1.js">
</script>

</body>
</html>
document.write("<p>");

for (var i = 0; i < 10; i++){
  if (i % 2 == 1){
    continue;
  }

  document.write("i = " + i + "<br />");
}

document.write("</p>");

上記を実際にブラウザ見てみると次のように表示されます。

p10-1

( Written by Tatsuo Ikura )