next演算子を使って次の繰り返しへ処理を移す

next 演算子を使用すると現在の繰り返し処理を最後までスキップし次の繰り返しへ処理を進めることができます。ここでは Perl のプログラムの中で next 演算子の使い方について解説します。

(Last modified: )

next演算子の使い方

next 演算子を実行すると、その時実行している繰り返しを最後の位置までスキップさせて次の繰り返しに進みます。書式は次の通りです。

next;

例えば次の例で考えてみます。

my $count = 0;

while ($count <= 5){
  $count++;

  if ($count == 2){
    next;
  }

  print "$count\n";
  
  #next演算子が実行されるとこの位置に進む
}
print "終了\n";

上記では繰り返し処理の中で条件判断を行い、変数 $count が 2 と等しい時には next 演算子が実行されます。 next 演算子が実行されると繰り返し処理の最後の位置までの処理はすべてスキップし、次の繰り返しへ進みます。その為、今回の例では変数 $count が 2 と等しい時には print "$count\n"; が実行されません。

next 演算子の場合も対象となる繰り返し処理というのは、 while 文、 until 文、 for 文、foreach 文の他に空のブロックが対象となります。 if 文などは対象外ですので、上記のサンプルで next 演算子が実行された時に繰り返し処理の最後まで進むのは if 文ではなく while 文となります。

サンプルコード

それでは簡単なサンプルを作成します。

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

my $count = 0;

while ($count < 5){
  $count++;

  if ($count == 2){
    next;
  }

  print "$count\n";
}

print "End\n";

テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。

perl sample.pl

次のように実行結果が表示されます。

next演算子を使って次の繰り返しへ処理を移す(1)

繰り返し処理の中で変数の値が 2 と等しい場合は next 演算子を使って繰り返し処理の最後まで処理が移動します。結果として変数の値が 2 と等しいときだけ画面に出力がされません。

-- --

Perl のプログラムの中で next 演算子の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。