Perl for文とlastとnextのサンプル

Perlのfor文のサンプルとfor文でlastとnextを使用するサンプルです。

確認環境
・Perl 5.26.3

目次

for文

for(初期化式  ; 条件式  ;  増減式){
  繰り返される箇所
}
  • 初期化式は、最初に1回だけ実行されます。
  • 初期化式にあるループで使用する変数をカウンター変数またはループ変数といいます。
  • 条件式がtrueの間、処理を繰り返します。
  • 条件式がfalseの場合、ループ処理を終了します。
  • 増減式でカウンター変数/ループ変数の値が変わります。

コード

for文のサンプルです。

#! /usr/bin/perl
use strict;
use warnings;

for (my $i = 0; $i < 3; $i++) {
	print $i; # 0 1 2
}

5行目のカウンター変数の$iは0から始まり、増減式($i++)により1ずつ増えていきます。
$i <3がtrueの間、処理を繰り返します。0,1,2が出力されます。

 

for文でlastを使用する

  • for文でlastを使用するとループ処理から抜けます。(そのブロックから抜けます)
  • 「{」(波括弧) から「}」までをブロックといいます。
  • lastは、Javaのbreakにあたります。

コード

for文でlastを使用するサンプルです。

#! /usr/bin/perl
use strict;
use warnings;

for (my $i = 0; $i < 3; $i++) {

	if ($i == 1){
		last;
	}
	print $i; # 0
}

8行目のlastでfor文を抜けます。
10行目は、0のみ出力されます。

 

for文が入れ子のときのlast文のサンプル

for文が入れ子のときのlastのサンプルです。

#! /usr/bin/perl
use strict;
use warnings;

for (my $i = 0; $i < 2; $i++) {

	for (my $j = 0; $j < 2; $j++) {

		if ($j == 0){
			last;
		}
		print "j=".$j; # 出力なし
	}
	print "i=".$i; #i=0 i=1
}

5,7行目にfor文があり入れ子になっています。
10行目のlastは、内側のfor文のみ抜けます。

 

for文でnextを使用する

  • for文でnextを使用すると、ループ処理の先頭に戻ります。(ブロックの先頭位置に戻ります)
  • 「{」(波括弧) から「}」までをブロックといいます。
  • nextは、Javaのcontinueにあたります。

コード

for文でnextを使用するサンプルです。

#! /usr/bin/perl
use strict;
use warnings;

for (my $i = 0; $i < 3; $i++) {

	if ($i == 1){
		next;
	}
	print $i; # 0 2
}

8行目のnextでループ処理の先頭に戻ります。
10行目は、0と2が出力されます。

 

for文が入れ子のときのnext文のサンプル

for文が入れ子のときのnextのサンプルです。

#! /usr/bin/perl
use strict;
use warnings;

for (my $i = 0; $i < 2; $i++) {

	for (my $j = 0; $j < 2; $j++) {

		if ($j == 0){
			next;
		}
		print "j=".$j; # j=1 j=1
	}
	print "i=".$i; #i=0 i=1
}

5,7行目にfor文があり入れ子になっています。
10行目のnextは、内側のfor文の先頭の8行目に戻ります

関連の記事

Perl if文のサンプル
Perl while文とdo…while文のサンプル

△上に戻る