関係演算子の種類と使い方
if 文などの条件分岐の時には条件式の内容が真か偽かによって処理を分けます。条件式には「xxxと等しい」とか「xxxよりも大きい」などを指定することになります。この条件式の中で使用されるのが関係演算子(比較演算子とも言います)です。ここでは Ruby で用意されている関係演算子の一覧と、それぞれの使い方について解説します。
(Last modified: )
関係演算子の種類
Ruby
で用意されている関係演算子の種類は次の通りです。
演算子 | 記述例 | 意味 |
---|---|---|
== | a == b | bがaに等しい |
!= | a != b | bがaに等しくない |
> | a > b | bよりaが大きい |
>= | a >= b | bよりaが大きいか等しい |
< | a < b | bよりaが小さい |
<= | a <= b | bより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 )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。