if文で条件式が偽の時の処理(if...else)
if 文では条件式を評価し、結果が真になったときにブロック内の処理を実行しますが、結果が偽になったときに別のブロック内の処理を実行することができます。ここでは Perl で if...else 文を使って条件式が偽になったときに別の処理を実行する方法について解説します。
(Last modified: )
if文で条件式が偽の時の処理
if
文は記述した条件式が真(true)のとき処理を実行します。もう一度書式を確認しておくと次のようなものでした。
if (条件式){ 条件式が真の時に実行する処理1; 条件式が真の時に実行する処理2; }
if...else
文を使用すると、条件式が真になったときとは別に偽になったときにも別の処理を実行することができます。書式は次の通りです。
if (条件式){ 条件式が真の時に実行する処理1; 条件式が真の時に実行する処理2; }else{ 条件式が偽の時に実行する処理1; 条件式が偽の時に実行する処理2; }
条件式を評価し、真(true)だった場合にはすぐ次に記述された {
から }
までのブロック内の処理を実行し、偽(false)だった場合には else
のあとに記述された {
から }
までのブロック内の処理を実行します。
例えば変数に格納された値が正の数か負の数かで処理を分ける場合には次のように記述します。
my $num; $num = 5; if ($num >= 0){ print "正の数です"; }else{ print "負の数です"; }
変数が正の数だった場合は "正の数です" と表示し、負の数だった場合は "負の数です" と表示されます。今回は正の数なので "正の数です" と表示されます。
では簡単なプログラムで確認して見ます。
use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my $old; $old = 18; if ($old >= 20){ print "ご利用頂けます\n"; }else{ print "未成年の方はご利用頂けません\n"; } $old = 34; if ($old >= 20){ print "ご利用頂けます\n"; }else{ print "未成年の方はご利用頂けません\n"; }
上記を「test4-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。
今回のサンプルでは年齢を格納する変数「$old」の値に応じて処理を分けています。
( Written by Tatsuo Ikura )

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