Contents
【Perl】 if文で否定する方法をまとめてみた
// ifで否定する場合の構文 // 数値の変数の場合 if(a != b){ <文> } // 文字列の変数の場合 if(a ne b){ <文> } // 真偽値の変数の場合 if(!<条件式>){ <文> } // unless文 unless(!<条件式>){ <文> }
if文で否定する場合は「!」や「!=」などで否定することができます。変数の型が数値なのか、文字列型なのか、真偽値型なのかで記述が異なるため、それぞれ覚える必要があります。
ビックリマークが馴染み深いですが、正式名称は「エクスクラメーションマーク(英語:exclamation mark)」といいます。
Perlも含めいくつかのプログラミング言語では、否定を意味するようです。これは使い慣れて覚えていくしかなさそうです。
if文で数値の比較結果を否定する場合
//「!=」:右辺と左辺を比較 my $a = 10; my $b = 11; if ($a != $b) { print "$a != $bはtrue"; } else{ print "$a != $bはfalse"; } // 実行結果 10 != 11はtrue //「==」と「!」で否定 my $a = 10; my $b = 11; if (!($a == $b)) { print "$a != $bはtrue"; } else{ print "$a != $bはfalse"; } // 実行結果 10 != 11はtrue
int型でif文で否定する場合は論理演算子で「!= 」を使用することで対象値以外(否定)の場合の条件式とすることができます。
また、「== 」の外側に「!」を使用することで判定結果を否定することができます。
if文で文字列型の比較結果を否定する場合
文字列の比較は「eq」を使用します。同じ文字列であればtrueとなり、違えばfalseとなります。「!」を使用することで比較結果を否定し反転することができます。
my $a = "test"; if (!($a eq "est")) { print "反転できた"; } // 実行結果 反転できた
if文で真偽値型の比較結果を否定する場合
boolean型の変数の前に「!」をつけると、処理が反転することが分かります。
Perlで偽とされる値は以下の4つです。
- undef:未定義値
- “”:空文字列
- 0
- “0”
以下の場合、「!」を付与しない場合、falseですが、「!」を使用することで結果が反転することが分かります。
if (!0) { print "0否定できた\n"; } if (!"0") { print "0否定できたその2\n"; } if (!"") { print "カラ否定できた"; } // 実行結果 0否定できた 0否定できたその2 カラ否定できた
unless文
unless文はif文を否定した形となります。
unless (0) { print "0否定できた"; } //実行結果 0否定できた
コメントを残す