Rubyの論理演算子と比較演算子二人は仲良しではなくややこし
プログラミングでみんな挫折する理由の一つとして、似て非なるものやお前があいつであいつがそいつでドイツでオランダでサファリパーク!
というように結果ややこしくなる事が多いです。クラスとインスタンス、インスタンス変数にクラスメソッド、インスタンスメソッド、インスタンスの生成にはクラス名.newとか似たようでちょっと違う名前が目白押しで目黒通りまで並んでいますとまでいうと大袈裟ですが、その中でも私が特にごっちゃになるのは「論理演算子」と「比較演算子」なので覚える為にアウトプットします。
あれはまだ日本が高度成長期まっただ中の頃です。っと昔語りをしたくなりますがそうではなくまずは論理演算子は覚えるのは3つだけ!
&&と||と!
アンドアンドと棒二つ、ビックリの3つだけシンプルすぎて間違えやすいですが、冷静に考えると&&は「共に生きよう」だし||は間に挟んだどっちかが有りなら有りでしょ?だし!はその後に続く値が嘘なら本当だし本当なら嘘だしまさにビックリだし、どこにも「比較」な演算では確かにない。
言い換えれば&&は同じじゃなきゃダメ(False)
||はどっちかどっちも正しくなきゃダメ(同上)
!だけは右なら左、左なら右、上なら下見合いに逆ベクトルって事
続いて比較演算子は覚えるのは6つ、おそ松君(さん)みたいなものです。だから誰が誰か分からないってのも有りますが
長男の「ヒトシ」 ==
次男の「ヒトシクナイシ」 !=
三男の「チイサイシ」 <
四男の「オオキイシ」 >
五男の「イカデアル」 <=
六男の「イジョウデアル」 >=
長男以外は無理やりですがAとBが同じは=ではなく==
AとBが違う時に正解(真(true))は!をつけた=で!=
大なり小なりはお馴染みでAを含めたそれ以下が<に=をつける
Aを含めた以上が>に=にをつけるとなります。
6つを3つグループに分けて考えて、=が着くのがうち2つ。1つが=主体、もう1つが大なり小なり主体に=と覚えれば覚える事ができるでしょうか?
いずれにせよややこしいけど、論理演算子も比較演算子もその中の内容もたった9個、覚えて整理できていればプログラミングの知識としてグッと楽になるはず