next演算子

広告

「last」演算子は繰り返し処理を終了させるのに使用しましたが、「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文となります。

サンプルプログラム

では簡単なプログラムで確認して見ます。

test8-1.pl

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";
  
  #next演算子が実行されるとこの位置に進む
}
print "終了¥n";

上記を「test8-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。

next演算子

今回の例では変数の値が「2」の時だけ画面に出力されません。

( Written by Tatsuo Ikura )