Perl入門
> 第5章 制御構造
第5章 制御構造
5-1. 真と偽
制御構造としての条件式やループ文を学習する前に、
真
(true) と
偽
(false) について理解をしておきましょう。
Perlにおける、
真
と
偽
の定義については次のとおりです。
偽
数値の 0 、文字列の "0"、空きの文字列 ""、未定義値
真
上記以外のもの
これを、以下の具体例で判断してみましょう。
0
数値の 0 なので
偽
1
数値の 1 なので
真
3 - 3
数値として結果が 0 なので
偽
0.0
数値の 0 なので
偽
"0"
文字列の 0 なので
偽
"0.0"
文字列の 0.0 は 0 とは異なるため
真
A
文字列の A は
真
""
空き文字列なので
偽
undef()
未定義値を返す関数なので
偽
5-2. 条件式
条件式とは、「もし〜ならば…」という条件構文を定義するもので、
if文
と
unless文
の2つが用意されています。
条件式には、通常
比較演算子
を使用して条件を定義します。
unless文
は
if文
の逆の意味を持ちます。
構文
if (
条件
A ) {
実行
A }
elsif (
条件
B ) {
実行
B }
else {
実行
C }
意味
もし、「条件A」が
真
であるならば、「実行A」を実行する。
もし、「条件A」が
偽
で、「条件B」が
真
ならば、「実行B」を実行する。
もし、「条件A」「条件B」が
偽
であるならば、「実行C」を実行する。
if ($size eq "big") { print "
大きい\
n"; }
elsif ($size eq "middle") { print "
中くらい\
n"; }
else { print "
小さい\
n"; }
5-3. ループ文
ループ文とは、ある条件のもとで、処理を繰り返し実行するもので、主に次の4つの構文が用意されています。
構文名
構文
意味
while文
while (
条件
) {
実行
}
「条件」が
真
である間は「実行」を実行する
until文
until (
条件
) {
実行
}
「条件」が
偽
である間は「実行」を実行する
for文
for (
初期化 条件式 増減式
) {
実行
}
「条件式」が
真
であれば「実行」を実行し、次に「増減式」を実行する
foreach文
foreach
制御変数
(
リスト値
) {
実行
}
「リスト値」の要素を順に「制御変数」にセットして、「実行」を実行する
while文
$i = 3;
while ($i > 0) {
print "
カウントダウン
: $i
\
n";
$i--;
}
<出力結果>
カウントダウン : 3
カウントダウン : 2
カウントダウン : 1
until文
$i = 3;
until ($i <= 0) {
print "
カウントダウン
: $i
\
n";
$i--;
}
<出力結果>
カウントダウン : 3
カウントダウン : 2
カウントダウン : 1
for文
for ($i=3; $i>0; $i--) {
print "
カウントダウン
: $i
\
n";
}
<出力結果>
カウントダウン : 3
カウントダウン : 2
カウントダウン : 1
foreach文
foreach $i (3, 2, 1) {
print "
カウントダウン
: $i
\
n";
}
<出力結果>
カウントダウン : 3
カウントダウン : 2
カウントダウン : 1
5-4. ループ制御
ループ文で、ループの流れを変えるために、次の2つの演算子が用意されています。
next演算子
ループをスキップする
last演算子
ループを終了する
next演算子
foreach $i (5, 4, 3, 2, 1) {
if ($i == 3) { next; }
print "
カウントダウン
: $i
\
n";
}
<出力結果>
カウントダウン : 5
カウントダウン : 4
カウントダウン : 2
カウントダウン : 1
last演算子
foreach $i (5, 4, 3, 2, 1) {
if ($i == 3) { last; }
print "
カウントダウン
: $i
\
n";
}
<出力結果>
カウントダウン : 5
カウントダウン : 4
戻る