関係演算子の種類と使い方

if 文などの条件分岐の時には条件式の内容が真か偽かによって処理を分けます。条件式には「xxxと等しい」とか「xxxよりも大きい」などを指定することになります。この条件式の中で使用されるのが関係演算子(比較演算子とも言います)です。ここでは Ruby で用意されている関係演算子の一覧と、それぞれの使い方について解説します。

(Last modified: )

関係演算子の種類

Ruby で用意されている関係演算子の種類は次の通りです。

演算子記述例意味
==a == bbがaに等しい
!=a != bbがaに等しくない
>a > bbよりaが大きい
>=a >= bbよりaが大きいか等しい
<a < bbよりaが小さい
<=a <= bbよりaが小さいか等しい

関係演算子は実際には左辺側のオブジェクトのメソッドです。 String クラスや Integer クラス、 Float クラスで定義されています。

左辺と右辺のオブジェクトが持つ数値や文字列を比較し等しいか等しく無いか、また大きいか小さいかなどを比較できます。(オブジェクトそのものが同一かどうかを比較するわけではありません)。

左辺 演算子 右辺

比較した結果として true または false を返します。

等しいかどうかの比較

演算子の左辺と右辺が等しいかどうかを比較するには == 演算子を使用します。

次の例を見てください。

num = 18
if num == 20 then
  puts("変数の値は20と等しい")
end

c1 = "Red"
c2 = "Red"
if c1 == c2 then
  puts("2つの変数の値は等しいです")
end

左辺の値と右辺の値が等しい場合に true となり、等しくない場合に false となります。このとき左辺と右辺のオブジェクトが等しいかどうかを比較しているわけではなく、オブジェクトの値が等しいかどうかを比較しています。

演算子の左辺と右辺が等しくないかどうかを比較するには != 演算子を使用します。

num = 18
if num != 20 then
  puts("変数の値は20と等しくないです")
end

c1 = "Red"
c2 = "Red"
if c1 != c2 then
  puts("2つの変数の値は等しくないです")
end

先ほどとは逆に左辺の値が右辺の値と違う場合に true となり、同じ値の場合は false となります。

大きいかどうかの比較

演算子の左辺と右辺の大きさを比較するには > >= < <= の演算子を使用します。

次の例を見てください。

num = 18
if num > 20 then
  puts("変数の値は20より大きいです")
end

val = "Jan"
if val > "Feb" then
  print("JanはFebより大きいです")
end

> 演算子を使用する場合、左辺の値が右辺の値より大きい場合に true となり、そうではない場合に false となります。大きさを比較する場合、数値であれば数値の大きさを比較し、文字列の場合は比較する 2 つの文字列をアルファベット順に並べて比較します。 "a" は "b" よりも小さく "A" は "a" よりも小さいです。

< 演算子を使用する場合、左辺の値が右辺の値より小さい場合に true となります。また >= 演算子の場合は大きいか等しい場合、 <= 演算子の場合は小さいか等しい場合に true となります。

サンプルコード

では簡単なプログラムで確認してみます。

# encoding: UTF-8

num = 18
if num == 20 then
  puts(num.to_s + " は 20 と等しい")
end

if num != 20 then
  puts(num.to_s + " は 20 と等しくない")
end

num = 20
if num == 20 then
  puts(num.to_s + " は 20 と等しい")
end

if num != 20 then
  puts(num.to_s + " は 20 と等しくない")
end

v1 = "Red"
v2 = "Red"
if v1 == v2 then
  puts(v1 + " と " + v2 + " は等しい")
end

if v1 != v2 then
  puts(v1 + " と " + v2 + " は等しくない")
end

num = 18
if num > 20 then
  puts(num.to_s + " は 20 より大きい")
end

if num <= 20 then
  puts(num.to_s + " は 20 より小さいか等しい")
end

v1 = "Jan"
v2 = "Feb"
if v1 > v2 then
  puts(v1 + " は " + v2 + " より大きい")
end

if v1 <= v2 then
  puts(v1 + " は " + v2 + " より小さいか等しい")
end

下記のように実行して下さい。

関係演算子

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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