last演算子を使った繰り返し処理の終了

last 演算子を使用すると繰り返し処理が行われている時に強制的に繰り返し処理を終了させることができます。ここでは Perl のプログラムの中で last 演算子の使い方について解説します。

(Last modified: )

last演算子を使った繰り返し処理の終了

last 演算子を使用すると繰り返し処理が行われている時に強制的に繰り返し処理を終了させることができます。書式は次の通りです。

last;

繰り返し処理の中で last 演算子が実行されるとその時点で繰り返し処理は終了となります。なお終了する繰り返し処理は、 last 演算子が記述されている箇所を含む一番内側の繰り返し処理が対象です。

my $count = 1;

while (1){
  print "$count\n";
  $count++;

  if ($count > 5){
    last;
  }
}
print "終了\n";

上記の例では while 文の条件式に 1 と記述しているため、条件式は常に真(true)となりこの while 文は無限ループとなります。ただ、繰り返し処理の中で if 文を使って条件判断を行い、ある条件となったら last 演算子を実行して while 文を終了するようにしてあります。

なお last 演算子によって終了となる繰り返し処理というのは、 while 文、 until 文、 for 文、 foreach 文の他に裸のブロックが対象となります。 if 文などは対象外ですので、上記のサンプルで last 演算子が実行された時に終了するのは if 文ではなく while 文となります。

サンプルコード

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

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

my $count = 1;

while (1){
  print "$count\n";
  $count++;

  if ($count > 5){
    last;
  }
}

print "End\n";

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

perl sample.pl

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

last演算子を使った繰り返し処理の終了(1)

while 文を使った繰り返し処理の中で、条件を満たしたときに last 演算子を使って繰り返し処理の次の処理へ処理を進めています。

-- --

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

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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