Rubyがミニツク

あなたのRubyの技術に関するより詳しい知識と理解を増やします。

Ruby入門コース

このコースについて

Rubyのeラーニング研修システムはRailsを使ってWebアプリケーション開発ができる技術者の育成を目指します。 そのため、Railsを扱うことができるだけのRubyの知識を得ることがRuby入門コースの目標となっています。

コンテンツ一覧

ヒント レッスンの名前をクリックすると、その内容を表示します。

次のコンテンツ ホームへ戻る

論理演算子

論理演算子を使うことで複数の条件を組み合わせることができます。この演算子も条件を判定した結果として真と偽のどちらかの値が返ってきます。その値を使うことによって分岐をおこなうことができます。以下のように条件を繋げるように書きます。

<条件1> && <条件2>
<条件1> || <条件2>

どちらも<条件1>を先に評価してから<条件2>に移ります。

「&&」は<条件1>を評価した結果が真ならば、<条件2>を評価します。「&&」はすべての条件を評価した結果が真ならば、戻り値に真を返します。「&&」は<条件1>が偽ならば偽であることが決まるので、<条件2>は判定せずに偽を返します。「||」は<条件1>を評価した結果が偽ならば、<条件2>を評価します。「||」は条件を評価した結果がどれか真ならば、戻り値に真を返します。「||」は<条件1>が真ならば真であることが決まるので、<条件2>は判定せずに真を返します。紹介した記号で表せる論理演算子には、アルファベットで書ける別表現があります。以下にそれぞれの演算子を示します。

  • && and
  • || or
  • ! not

これらの演算子の違いは優先順位が違います。たとえば「!」はこれらの演算子の中ではもっとも優先順位が高いです。「!」よりも先に実行をしたい時は()で囲まないといけません。

a = false
b = true
p !a && b   #=> true
p !(a && b) #=> false

また「&&」と「||」は、「&&」の方が「||」よりも優先順位が高いです。

a = true
b = false
c = nil
p a || b && c    #=> true
p (a || b) && c  #=> false

アルファベットの論理演算子の中では「not」が先に実行され、「and」と「or」は同じ優先順位です。

a = false
b = true
c = nil
p (not a and b)  #=> true
p a or b and c   #=> false

論理演算子についてはリファレンスでも説明されていますので、そちらを参照してください。


次のコンテンツ ホームへ戻る