関係演算子

if 文や繰り返し処理の while 文などでは条件式が真になるのか偽になるのかによって処理をわけます。この条件式で使用されるのが関係演算子です。二つの値を比べて等しいか大きいかなどを調べ結果として真か偽を返します。ここでは Perl における関係演算子の利用方法について解説します。

(Last modified: )

関係演算子の種類

関係演算子には次のようなものが用意されています。

演算子(数値)演算子(文字列)記述例意味
==eqa == bbがaに等しい
!=nea != bbがaに等しくない
>gta > bbよりaが大きい
>=gea >= bbよりaが大きいか等しい
<lta < bbよりaが小さい
<=lea <= bbよりaが小さいか等しい

関係演算子には数値を比較するための演算子と文字列を比較するための演算子の二種類が用意されています。例えば 2 つの値が等しいかどうかを判別する場合、数値を比較するには == 演算子を使い、文字列を比較するには eq 演算子を使います。関係演算子は結果として真(true)又は偽(false)を返します。

文字列を比較する場合には、両辺の文字列の値を1文字ずつ順に比較していきます。大きいか小さいかの判別は比較する2つの文字列をソートしてどちらが先にくるのかで比較しています。

なお文字列の比較の場合には数値用の演算子を使うこともできます。

等しいかどうかの比較

2 つの値が等しいかどうかを比較するには == 演算子、または eq 演算子を使います。例えば次のように記述します。

my ($num, $name);

$num = 10;
if ($num == 10){
  print "10と等しい\n";
}

$name = "加藤";
if ($name eq "加藤"){
  print "加藤です\n";
}

この場合は変数 $num に格納されている値が 10 と言う数値と等しいかどうかを判別します。また変数 $name に格納されている値が "加藤" と言う文字列と等しいかどうかを判別しています。等しい場合は条件式が「真」、等しくない場合は条件式が「偽」となります。

また等しくないかどうかを比較するには != 演算子、または ne を使います。例えば次のように記述します。

my ($num, $name);

$num = 10;
if ($num != 15){
  print "15と等しくない\n";
}

$name = "加藤";
if ($name ne "伊藤"){
  print "伊藤ではありません\n";
}

この場合は変数 $num に格納されている値が 15 と言う数値と等しくないかどうかを判別します。また変数 $name に格納されている値が "伊藤" と言う文字列と等しくないかどうかを判別しています。等しくない場合は条件式が「真」、等しい場合は条件式が「偽」となります。

大きいかどうかの比較

演算子の右辺と左辺の数値の大きさを比較するには > , >= , < , <= 演算子を使います。文字列の場合は gt , ge , lt , le 演算子を使います。

例えば次のように記述します。

my ($num, $name);

$num = 10;
if ($num > 5){
  print "5よりも大きい\n";
}

$name = "abc";
if ($name gt "ABC"){
  print "ABCより大きい\n";
}

この場合は変数 $num に格納されている値が 5 と言う数値よりも大きいかどうかを判別します。また変数 $name に格納されている値が "ABC" と言う文字列と比較して大きいかどうかを判別しています。大きい場合は条件式が「真」、大きくない場合は条件式が「偽」となります。

文字列の場合に大きいというのは、 2 つの値をソートして後に出てくる方が大きい値となります。 "a" と "b" なら "b" の方が大きく、 "a" と "A" なら "a" の方が大きいです。

サンプルコード

それでは簡単なサンプルを作成します。

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

my $num;
my $name;

$num = 10;
if ($num == 10){
  print "$num と 10 は等しい\n";
}

if ($num != 15){
  print "$num と 15 は等しくない\n";
}

if ($num > 5){
  print "$num は 5 よりも大きい\n";
}

$name = "加藤";
if ($name eq "加藤"){
  print "$name と 加藤 は等しい\n";
}

if ($name ne "伊藤"){
  print "$name は 伊藤 ではありません\n";
}

$name = "abc";
if ($name gt "ABC"){
  print "$name は ABC より大きい\n";
}

テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。

perl sample.pl

次のように実行結果が表示されます。

関係演算子(1)

色々な関係演算子を使って数値や文字列が等しいかどうかや大きさの比較を行いました。

-- --

Perl における関係演算子の利用方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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