【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否定できた







コメントを残す