エラーばかり投稿してもつまらないので、今回はif文とunless文について学んだことを書いていきたいと思います。
if文とは
if A = B
# 処理
end
AはBであるという内容が、
正しければ処理を実行し、
正しくなければ処理を実行しません。
unless文とは
unless A = B
# 処理
end
AはBであるという内容が、
正しければ実行せず、
正しくなければ実行します。
=は等しいかどうかを比較するときに使います。
if文ではAとBが等しいときにtrueとなり、処理を実行し、
逆にunless文ではAとB等しくない時にtrueとなり、処理を実行するというわけです。
それでは比較演算子の1つである!=を使うとどうなるでしょうか?
比較演算子の !=とは
=とは逆で等しくないことを比較するときに使う比較演算子です。
要するに
if A != B
# 処理
end
AはBではないという内容が
正しければ処理を実行し、
正しくなければ処理を実行しません。
unless A != B
# 処理
end
AはBではないという内容が、
正しければ実行せず、
正しくなければ実行します。
何やらこんがらがってきました。
文字に書くと難しくなってきましたが、要するに
if A = B と unless A != Bは同じ
if A != B と unless A = B は同じ
という解釈で大丈夫そうです。
どちらを使えばいいか
可読性も考え、基本的にはif文を使用した方が良いみたいです。
英語におけるifの否定(if not)とunlessの違い
英語が得意だ!という人からすると信じられないかもしれませんね。
理由は、例えば
A if he isn't B.という英文と
A unless he is B.という英文は全く違う意味だからです
英語の授業ではないので英文の例文や意味は記述しません。
ただ、プログラミングにおけるifとunlessは難しく考えず、逆の意味程度にとどめておいた方が良いかもしれません。
終わり
英語が得意ではなかったですが、ifとunlessの使い方を疑問に思い、調べたり聞いたりした結果でした。
調べる前までは、
肯定したければif 否定したければunless
という考え方でした。
これからは基本的にはif文を使っていきたいと思います。