Perl/制御構造
表示
< Perl
制御構造
[編集]Perlの制御構造は、プログラムの実行フローを制御するために使用される構文です。基本的な制御構造には、条件分岐やループが含まれ、Perlの柔軟な構文により、多様な方法で記述することができます。以下に、Perlで使用される主な制御構造について説明します。
条件分岐
[編集]if
, elsif
, else
[編集]Perlでは、if
文を使用して条件に基づいてコードを実行できます。elsif
とelse
は、追加の条件やそれ以外のケースに対応します。
my $x = 10; if ($x > 10) { say "x is greater than 10"; } elsif ($x == 10) { say "x is equal to 10"; } else { say "x is less than 10"; }
unless
[編集]unless
は、条件が偽のときにブロックを実行するための構文です。if
の逆です。
my $y = 5; unless ($y > 10) { say "y is not greater than 10"; }
後置if/unless
[編集]Perlでは、簡潔な記述のために、条件文を後置することもできます。
say "x is equal to 10" if $x == 10; say "y is not greater than 10" unless $y > 10;
ループ構造
[編集]while
ループ
[編集]条件が真である限り、繰り返し処理を実行します。
my $i = 0; while ($i < 5) { say "i is $i"; $i++; }
until
ループ
[編集]条件が偽の間、ループを繰り返します。while
の逆です。
my $j = 0; until ($j == 5) { say "j is $j"; $j++; }
for
ループ
[編集]特定の範囲を繰り返し処理する一般的なループです。
for (my $k = 0; $k < 5; $k++) { say "k is $k"; }
foreach
ループ
[編集]リストの要素を順に処理するためのループです。foreach
とfor
は同じ動作をします。
my @array = (1, 2, 3, 4, 5); foreach my $value (@array) { say "Value is $value"; }
後置while/until
[編集]if
やunless
と同様に、ループ条件を後置して記述できます。
my $n = 0; say "n is $n" while $n++ < 5;
ループ制御
[編集]next
[編集]next
は、ループの現在の反復をスキップし、次の反復に進みます。
for my $i (1..5) { next if $i == 3; say "i is $i"; }
last
[編集]last
は、現在のループを終了させます。break
に相当します。
for my $i (1..5) { last if $i == 4; say "i is $i"; }
redo
[編集]redo
は、現在の反復を再実行します。
my $count = 0; while ($count < 5) { say "count is $count"; $count++; redo if $count == 3; }
条件演算子(3項演算子)
[編集]Perlでは、条件演算子を使って簡潔な条件分岐を記述できます。
my $a = 10; my $b = ($a > 5) ? "Greater than 5" : "5 or less"; say "$b"; # "Greater than 5"
まとめ
[編集]Perlの制御構造は非常に柔軟で、多くの場面に対応できます。基本的なif
やwhile
に加え、unless
など、Perlならではの簡潔な記述が可能です。