本記事について
本記事は、Rubyを学び始めた私自身が「?」となった論理演算子について、
学んだ内容をまとめます。
私と同じく「?」となった初学者の皆さんがこの記事を読むことで
理解できるようになることを目的とします。経験の浅い私ならではのシンプルな文章が、
皆さんの理解の一助になることを願います。
論理演算子とは?
そもそも論理演算子とは? Google先生に聞いてみると、下記とのこと。
「論理演算子とは、「真」と「偽」の2つの値だけで行う計算(論理演算)を表す
記号のことです。」
いまいちピントこない。というのが私の第一印象です。
私が腹落ちした、もう少し噛み砕いた表現にすると、
「論理演算子とは、複数の条件式を組み合わせた条件式の真偽を教えてくれる記号」
例えば、下記の2つの条件式があったとします。
条件式1 a > b
条件式2 a > 10
ここで論理演算子を用いれば、
- 条件式1を満たす、かつ条件式2も満たす場合
- 条件式1と条件式2のいずれかを満たす場合
のように、複数の条件式を組み合わせた条件の真偽を結果として出すことができます。
以降で実際の論理演算子と具体例を紹介します。
論理演算子の種類
Rubyには以下の論理演算子が用意されています。
no. | 論理演算子 | 記入例 | 意味 |
---|---|---|---|
1 | && | a && b | aとbがどちらも真の場合→真 それ以外→偽 |
2 | || | a | | b | aとbの少なくとも1つが真の場合→真 それ以外→偽 |
3 | ! | ! a | aが真の場合→偽、偽の場合→真 |
具体例
シンプルな例をもとに、各論理演算子を見てみましょう。
1. a&&b(abどちらも真の場合→真)
下記の場合、ab共にtrueなので、比較演算子&&の結果は、trueとなります。
また、その結果(=true)がcに代入されている状態です。
a = true
b = true
c = a&&b
puts c.class # ==>実行結果は[TrueClass]となる
一方で、下記の通り、b = falseとした場合、ab共に真という条件は満たさなくなるので、
論理演算子&&の結果は、falseとなります。
a = true
b = false
c = a&&b
puts c.class # ==>実行結果は[FalseClass]となる
言うまでもありませんが、a=false,b=falseの場合→FalseClassとなります。
2. a||b (abの少なくとも1つが真の場合→真)
下記の場合、ab少なくとも1つが真を満たすため、論理演算子||の結果は、trueとなります。
a = true
b = false
c = a||b
puts c.class # ==>実行結果は[TrueClass]となる
一方で、下記の通り、ab共にfalseとした場合、
当然ですが、ab共に真という条件は満たさなくなるので、
論理演算子&&の結果は、falseとなります。
a = false
b = false
c = a||b
puts c.class # ==>実行結果は[FalseClass]となる
3. !a (aが真の場合→偽、偽の場合→真)
下記の通り、aが真、偽の場合、それぞれ逆の結果となります。
a = true
b = a!
puts b.class # ==>実行結果は[FalseClass]となる
a = false
b = !a
puts b.class # ==>実行結果は「TrueClass」となる
最後に
以上、論理演算子「&&」「||」「!」を紹介しました。
まだまだ拙い文章ですが、今後も自身が学んだ内容を簡単にまとめていきたいと思います。
最後まで読んでいただき、ありがとうございました。