LoginSignup
0
0

More than 3 years have passed since last update.

if文とunless文の使い分け

Posted at

エラーばかり投稿してもつまらないので、今回はif文とunless文について学んだことを書いていきたいと思います。

if文とは

ruby

if A = B
#処理
end

AはBであるという内容が、
正しければ処理を実行し、
正しくなければ処理を実行しません。

unless文とは

ruby

unless A = B
#処理
end

AはBであるという内容が、
正しければ実行せず、
正しくなければ実行します。

=は等しいかどうかを比較するときに使います。
if文ではAとBが等しいときtrueとなり、処理を実行し、
逆にunless文ではAとB等しくない時trueとなり、処理を実行するというわけです。

それでは比較演算子の1つである!=を使うとどうなるでしょうか?

比較演算子の !=とは

=とは逆で等しくないことを比較するときに使う比較演算子です。
要するに

ruby

if A != B
#処理
end

AはBではないという内容が
正しければ処理を実行し、
正しくなければ処理を実行しません。

ruby

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文を使っていきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0