【Ruby】レッスン2-01:条件式を理解する|比較演算子と論理演算子の基本

一つ前のLessonではRubyの基礎文法について学習しました。
今回からは Rubyの制御構造 について見ていきましょう。
Lesson1:基礎文法編
Lesson2:制御構造編
・Lesson2-1:比較演算子と論理演算子を理解しよう ◁今回はココ
・Lesson2-2:if文による分岐処理を理解しよう
・Lesson2-3:case文による分岐処理を理解しよう
・Lesson2-4:for文による繰り返し処理を理解しよう
・Lesson2-5:while文による繰り返し処理を理解しよう
・Lesson2-6:until文による繰り返し処理を理解しよう
・Lesson2-7:繰り返しを制御しよう
・確認問題2-☆1:ハイアンドロー ゲームを作ろう
・確認問題2-☆2:数当てゲームを作ろう
・確認問題2-☆3:簡単なじゃんけんゲームを作ろう
Lesson3:メソッド編
Lesson4:コレクション編
Lesson5:オブジェクト指向編
条件式の基本|比較演算子と論理演算子を使いこなそう

Rubyには値を比較したり、条件を組み合わせたりするための「比較演算子」と「論理演算子」が用意されています。
これらの演算子を使うことで複数の条件を評価し、結果として「true(真)」または「false(偽)」の値を得ることができます。
今回は比較演算子と論理演算子の基本的な使い方を学びましょう。
比較演算子とは?|等号・大小比較の使い分け
比較演算子は2つの値を比較し、その関係が成り立つかを確認するために使用します。
以下が主な比較演算子です。
==
: 等しい場合にtrueを返します。!=
: 等しくない場合にtrueを返します。<
: 左の値が右の値より小さい場合にtrueを返します。>
: 左の値が右の値より大きい場合にtrueを返します。<=
: 左の値が右の値以下の場合にtrueを返します。>=
: 左の値が右の値以上の場合にtrueを返します。
a = 10 b = 20 puts a == b # false (aとbは等しくない) puts a != b # true (aとbは等しくない) puts a < b # true (aはbより小さい) puts a > b # false (aはbより大きくない) puts a <= 10 # true (aは10と等しいかまたは小さい) puts b >= 30 # false (bは30より小さい)
このように比較演算子を使うと数値や文字列を比較し、プログラムの判断材料として活用できます。
比較結果は「true」または「false」として得られます。
論理演算子とは?|AND・OR・NOTの使い所
論理演算子は複数の条件を組み合わせて1つの結果を得るために使用します。
Rubyには以下の論理演算子があります。
&&
: 両方の条件がtrueの場合にtrueを返します(AND演算)。||
: いずれかの条件がtrueの場合にtrueを返します(OR演算)。!
: trueとfalseを反転させます(NOT演算)。
x = 5 y = 10 puts (x < y) && (y > 0) # true (両方の条件が満たされる) puts (x > y) || (y > 0) # true (いずれかの条件が満たされる) puts !(x < y) # false (x < y の結果を反転)
論理演算子は複雑な条件を扱うのに役立ちます。
例えば複数の条件がすべて満たされているかを確認する場合には&&
を使い、どれか1つの条件でも満たされていればよい場合には||
を使います。
条件式の実践例|比較+論理演算子の組み合わせ
実際には比較演算子と論理演算子を組み合わせて条件を表現することが多いです。
以下はその組み合わせを使って複数の条件をチェックする例です。
a = 15 b = 20 c = 10 puts (a > c) && (b > a) # true (a > c かつ b > a の両方がtrue) puts (a > b) || (c < b) # true (a > b がfalseでも、c < b がtrue) puts !(a == c) # true (a == c の結果がfalseなので、それを反転)
このように複数の比較を組み合わせることで、より柔軟な条件設定が可能になります。
論理演算子を使うことで、複雑な条件判断も一度に行うことができます。
まとめ|条件式を正しく理解しよう
比較演算子と論理演算子は条件を評価してプログラムを動的に制御するための重要なツールです。
比較演算子を使って値を比較し、論理演算子で条件を組み合わせることで、Rubyプログラムでさまざまな条件分岐や動作の制御が可能になります。
次回はこれらの演算子を利用したif文による分岐処理について学びましょう。
FAQ|Rubyの比較・論理演算子の使い方と注意点
- Q1. Rubyの「==」と「equal?」の違いは何ですか?
-
「==」は値が同じかどうかを比較するための演算子で、文字列や数値などの内容が一致していればtrueを返します。一方、「equal?」はオブジェクトのID(実体)が同じかを比較します。同じ内容でも別のオブジェクトであればfalseになります。
- Q2. Rubyで論理演算子「&&」「||」を使うときの優先順位はどうなりますか?
-
論理演算子には優先順位があり、「!」が最も高く、次に「&&」、最後に「||」の順で評価されます。複雑な条件式では括弧(())を使って評価の順序を明確にするのがおすすめです。
- Q3. 論理演算子を使うときに条件式が短絡評価されるとはどういう意味ですか?
-
短絡評価とは、左辺の評価結果だけで全体の結果が決まる場合、右辺を評価せずに処理を終えることです。例えば「false && hoge」の場合、「hoge」は評価されません。この特性を利用して安全な条件式を組むことができます。