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ならではの簡潔な記述が可能です。