分岐式
まずはオーソドックスにif elseのサンプルコードです。
ifは直後の ( ) 内が正の場合に{}内を処理しますが、その反対の分岐式も存在します。 それが unless です。
if else の構造をもっと短く書きたい場合、C言語やPHP等に用意されている ? : 制御を使用する事ができます。 使い方ですが、
A ? B : C
の構造で、 Aがまず最初に判定されます。 そしてこれが真なら B が評価され、偽なら C が評価されるという具合です。 この三項演算子は入れ子構造にすることもできます。
#!Perl
$a = 5;
if( $a >= 3 ){
print "Over 3";
}else{
print "Under 2"
}
として実行すると
Over 3と表示されます。if直後の式が評価され、真ならその後の { } 内が評価されます。 二択ならelse を使用して偽の場合の処理を定義してください。 もし更に選択肢を用意しなければいけなくなったら elsif を使用しましょう。
#!Perl
$a = 3;
if( $a == 3 ){
print "Value is 3";
}elsif($a > 3){
print "Over 3"
}else{
print "Under 2"
}
として実行すると
Value is 3となります。 elsifを重ねれば多段選択肢を作ることができます。
ifは直後の ( ) 内が正の場合に{}内を処理しますが、その反対の分岐式も存在します。 それが unless です。
#!Perl
$a = 5;
unless( $a >= 3 ){
print "Under 2";
}else{
print "Over 3"
}
として実行すると
Over 3と表示されます。これはunless直後の ( ) が偽の場合に { } 内が評価されるからです。 と、一応説明はしましたがなるべくなら使わない方が無難かもしれません。 というのはunlessはifで書き換えられる事が殆どの場合可能です。 ならばifで統一してしまった方がコードの可読性としては良いからです。
if else の構造をもっと短く書きたい場合、C言語やPHP等に用意されている ? : 制御を使用する事ができます。 使い方ですが、
#!Perl $a = 5; $a == 4 ? print "Value is 4" : print "Value is not 4";として実行すると
Value is not 4これは三項演算子といいますが、
A ? B : C
の構造で、 Aがまず最初に判定されます。 そしてこれが真なら B が評価され、偽なら C が評価されるという具合です。 この三項演算子は入れ子構造にすることもできます。
#!Perl $a = 5; ($a == 4) ? print "Value is 4" : ($a == 5) ? print "Value is 5" : print "Value is etc" ;として実行すると
Value is 5これは三項演算子の偽の場合の処理として更に三項演算子を重ねただけの事です。
2008年 11月 1日ドキュメント作成
2008年 11月 1日ドキュメント更新