next文 - 次の繰り返しの先頭にジャンプする【リンク移転】
next文を使うと次の繰り返しの先頭にジャンプすることができます。これは、C言語やJavaのcontinue文に該当します。
next
next文はwhile文やfor文などの繰り返し文の中で使うことができます。
while (1) { if (条件) { next; } } for (my $i = 0; $i < 10; $i++) { if (条件) { next; } } foreach my $animal (@animals) { if (条件) { next; } }
特定の条件の時だけ、処理を飛ばしたい場合にnext文を利用することができます。
サンプルプログラム
next文を使ったサンプルプログラムです。
特定の文字に一致したときにループの先頭にジャンプ
ループ処理の途中で、ある条件の場合に、次のループの先頭にジャンプしたい場合にnext文を利用できます。
use strict; use warnings; my @chars = qw(z z a b c d e f); for my $char (@chars){ next if $char eq 'z'; print "$char\n"; }
実行結果です。「z」のときだけ、次のループの先頭にジャンプしているので、後ろに続くprint関数が実行されないです。
a b c d e f
「qw(z z a b c d e f)」は文字列リスト演算子です。
if文、for文、while文については、以下で詳しく解説していますので、参考にしてください。
正規表現と一緒に使ってみる
nextと正規表現を組み合わせることも多いです。ひとつサンプルを書いてみます。「ABC」という文字列が含まれていない場合に、出力をスキップするサンプルを書いてみます。条件判定にはunless文を使っています。
use strict; use warnings; my @strings = ('ABC', 'ABCD', 'CDE', 'FGH'); for my $string (@strings){ next unless $string =~ /ABC/; print "$string\n"; }
出力結果です。「ABC」が含まれているものだけ出力されます。
ABC ABCD
関連情報
last文を使うとループを脱出できる
next文と似たものにlast文があります。last文を使うと、ループを抜けることができます。
last
last文については、以下の記事を参考にしてください。