真偽値について
・Exercise28:真偽値について
前回のエクササイズから学んだ論理の組み合わせは、ブール論理演算と呼ばれます。
ブール論理はプログラミングにおいてあらゆるところで使われており、計算の基礎に当たります。
このエクササイズでは、覚えた論理式を実際にRubyの中で使っていきます。
それぞれの問題を見て、その答えを書いてみてください。
答えはtrueもしくはfalseのどちらかになります。
答えを記入したら、それぞれ合っているかどうかターミナル上でRubyを起動して確かめてみてください。
- true && true ⇨ true
- false && true ⇨ false
- 1 == 1 && 2 == 1 ⇨ false
- “test” == “test” ⇨ true
- 1 == 1 || 2 != 1 ⇨ true
- true && 1 == 1 ⇨ true
- false && 0 != 0 ⇨ false
- true || 1 == 1 ⇨ true
- “test” == “testing” ⇨false
- 1 != 0 && 2 == 1 ⇨ false
- “test” != “testing” ⇨ true
- “test” == 1 ⇨ false
- !(true && false) ⇨ true
- !(1 == 1 && 0 != 1) ⇨ false
- !(10 == 1 || 1000 == 1000) ⇨ false
- !(1 != 10 || 3 == 4) ⇨ false
- !(“testing” == “testing” && “Zed” == “Cool Guy”) ⇨ true
- 1 == 1 && (!(“testing” == 1 || 1 == 0)) ⇨ true
- “chunky” == “bacon” && (!(3 == 4 || 3 == 3)) ⇨ false
- 3 == 3 && (!(“testing” == “testing” || “Ruby” == “Fun”)) ⇨ false
ブール論理を見た際に、以下のことを念頭に入れておけば簡単に解くことができます。
- “==”もしくは”!=”を見つけた場合、それをその真偽と入れ替える。
- 丸括弧()の中に”&&/||”を見つけた場合、そこを先に解く。
- “!”を見つけた場合は、その内容を逆に置き換える。
- 残りの”&&/||”を見つけた場合、そこを解く。
- そこまで終われば、trueかfalseかわかるはず。
このことを念頭に置いて、20番を一緒に解いてみましょう。
3 != 4 && !("testing" != "test" || "Ruby" == "Ruby")- イコールテストを行う。
3 != 4 IS TRUE: TRUE && !(“TESTING” != “TEST” || “RUBY” == “RUBY”)
“TESTING” != “TEST” IS TRUE: TRUE && !(TRUE || “RUBY” == “RUBY”)
“RUBY” == “RUBY”: TRUE && !(TRUE || TRUE)
2. 丸括弧()の中に”&&/||”を見つける。
(TRUE || TRUE) IS TRUE: TRUE && !(TRUE)
3. “!”を見つけた場合は、その内容を逆に置き換える。
!(TRUE) IS FALSE: TRUE && FALSE
4. 残りの”&&/||”を見つけてそれを解く。
TRUE && FALSE IS FALSE
これで終了で、答えがfalseとわかります。
出力結果について
Ruby上で実行すると、以下のようになると思います。

学習ドリル
- Rubyには他にも、“!=”や”==”に似たようなものがたくさんあります。これらの等号演算子を、できるだけ多く見つけてください。例えば、”<”や”<=”のようなものです。
- それぞれの等号演算子の名前もしくは意味を書いてください。例えば”!=”なら、”not equal”といった感じです。
- それら新たなブール論理値を使い、Ruby上で論理式を使って遊んでみてください。勿論実行する前に、自分で答えを考えてみましょう。
学習ドリルの答え
1 & 2. 見つけた等号演算子とその意味は、以下のようになります。
<= :値がそれ以下ならtrue
>= :値がそれ以上ならtrue
<=> :「左辺 < 右辺」であれば-1を、「左辺 > 右辺」であれば1を、等しければ0を返す
== :同じならtrue
=== :同じならtrue
!= :等しくなければtrue
=~ :正規表現、指定文字列があればtrue
!~ :正規表現、指定文字列がなければtrue
3. 以下のように適当に論理式を作成して実行してみました。
