Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

Ruby

【Ruby】比較演算子の書き方と使い方の基本

Ruby 比較演算子

動画で解説を見る



開発環境

  • Ruby version: ruby 3.1.2

Rubyの比較演算子とは

Rubyの比較演算子とは、左辺と右辺を比べる演算子式です。

「大なり」「小なり」「等しい」「等しくない」などを比較した結果として「true」または「false」を返します。

公式リファレンス:https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html

Rubyの比較演算子の書き方

Rubyの比較演算子の書き方は下記になります。

比較演算子の一覧

左辺と右辺を比べる定義されている比較演算子の一覧は下記となります。

左辺と右辺のオブジェクトが持つ数値や文字列を比較し、等しいか等しく無いか、また大きいか小さいかなどを比較した結果として「true」または「false」を返します。

上記以外にも「<=>」という比較演算子があります。

左辺と右辺を比較するのは他の比較演算子と同様ですが、左辺と右辺の比較結果を数値で返します。

また、少し特殊な比較演算子「===」があります。

「===」演算子は「==」と同じですが、case文で暗黙的に使用される比較演算子であり、オブジェクトの同等性を比較する演算子です。

例えば、数値オブジェクト、範囲オブジェクト、正規表現オブジェクト、文字列オブジェクト、インスタンスであるかどうかなどが判断されます。

Rubyの比較演算子の優先順位

Rubyの演算子には優先順位があります。

1つの式の中で複数の演算が行われるとき、式の各部分は一定の順序に従って評価されます。

例えば、論理演算子で使用される否定の「!」は比較演算子の「> >= < <=」や「<=> == === !=」などより優先順位が高く評価されます。

例えば、下記のようなコードで変数の値が「10より大きいか」どうかを比較し、その結果を「!」演算子を使用して否定する場合を考えてみます。

上記は変数「num」には「5」が入ってるため「!num」はfalseとなります。

そうするとfalseが10より大きいかを比較演算子で調べようとしますが、falseの元のクラスであるFalseClassには「>」メソッドが無いためエラーとなってしまいます。

このような場合は先に評価を行わせたい部分を括弧 () で括ることで、意図したとおりの順序で演算子による演算が行われるようにします。

上記の場合は、まずは括弧で括られた変数「num」が10よりも大きいかを比較演算子で調べた結果はfalseとなります。

そして、その結果に対して否定演算子「!」による演算が行われので式全体はtrueとなります。

このように演算子には優先順位があるため、他の演算子と組み合わせた場合、想定した通りの動作にならない場合もあるので注意しましょう。

Rubyの比較演算子の使い方

Rubyの論理演算子の使い方について、「等しい(==)、等しくない(!=)」「大なり(>)、小なり(<)」「以上(>=)、以下(<=)」「<=>」「===」について解説していきます。

等しい(==)、等しくない(!=)の使い方

等しい(==)、等しくない(!=)の使い方について、サンプルコードです。

等しい(==)という比較演算子は左辺と右辺が一致している場合はtrue、一致していない場合はfalseとなります。

等しくない(!=)という比較演算子は左辺と右辺が一致していない場合はtrue、一致している場合はfalseとなります。

大なり(>)、小なり(<)の使い方

大なり(>)、小なり(<)の使い方について、サンプルコードです。

大なり(>)という比較演算子は左辺が右辺より大きい場合はtrue、小さい場合はfalseとなります。

逆に小なり(<)という比較演算子は左辺が右辺より小さい場合はtrue、大きい場合はfalseとなります。

以上(>=)、以下(<=)の使い方

以上(>=)、以下(<=)の使い方について、サンプルコードです。

以上(>=)という比較演算子は左辺が右辺以上である場合はtrue、そうでない場合はfalseとなります。

逆に以下(<=)という比較演算子は左辺が右辺以下である場合はtrue、そうでない場合はfalseとなります。

「<=>」演算子の使い方

「<=>」演算子の使い方について、サンプルコードです。

左辺と右辺を比較するのは他の比較演算子と同様ですが、左辺が右辺より大きい場合は1、等しい場合は0、右辺が左辺より大きい場合は-1、比較できないときはnilとなります。

「===」演算子の使い方

「===」演算子の使い方について、サンプルコードです。

「===」演算子は「==」と同じですが、case文で暗黙的に使用される比較演算子であり、オブジェクトの同等性を比較する演算子です。

他の言語にある「===」のような厳密な比較演算子ではないため、注意しておきましょう。

おわりに

Rubyの比較演算子の使い方を解説してきました。

if文などの条件式と組み合わせて使用されることが多いですが、比較演算子は非常に広い範囲に渡って使用することができるため、プログラミングにおいては欠かせないほどです。

単一条件や複数条件など比較したい条件に合わせて自由に使い分けることができるようにしていきましょう。

Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

-Ruby