本サイトはプロモーション(広告)が含まれています。

【Perl】 if文で否定する方法をまとめてみた

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

Perl の記事一覧へ

PAGE TOP