5部 関数リファレンス

continue

2011年9月20日
continue

continueは、while文と一緒に使われます。while文にcontinueがある場合は、条件部を再び評価する直前にcontinueブロックが実行されます。ですから、nextなどで処理を飛ばした場合でも、continueブロックは必ず実行されます。


continueを使う意義は、永遠ループを明示的に避けることにつきます。下記のスクリプトは、$iが10になるまでループを繰り返しますが、next ifで、$iが5以下の場合は処理を飛ばしてしまいます。そのため、$i++が実行されず、$iの値は1のままで、永遠にループが続きます。

my $i = 1;
while ( $i <= 10 ) {
next if $i < 5;
$i++;
}

正解は以下のように、$i++whileブロックの最初の行で行うことです。

my $i = 1;
while ( $i <= 10 ) {
$i++;
next if $i < 5;
}

continueを使えば、もっと明確に永遠ループを避けることができます。

my $i = 1;
while ( $i <= 10 ) {
next if $i < 5;
}continue{
$i++;
}

上記スクリプトは、whileブロックをどのように書き換えても、$i++は必ず実行されるので、永遠ループを確実に避けることができます。

Comment

コメントを残す

メールアドレスが公開されることはありません。

リズムファクトリーはホームページの制作会社です。
ホームページ制作に関するご要望・ご相談はこちらからどうぞ。