rubyの基礎(5)真偽判定

rubyでの真偽判定は一癖あります。真偽とはtrue/falseの2値をもって処理を振り分ける(分岐と言います)ときの判定に使います。

プログラムでは、式を評価しその結果trueかfalseが返ってくることで、真偽判定します。
rubyでは偽(つまりfalse)は、式の評価結果がnilまたはfalseの場合のみです。それ以外のオブジェクトはすべて真(true)となります。
0でも""でもtrueです。ご注意を。

irb> def check(value)
irb> value ? true : false # これは三項演算子というもので、ある程度の経験を積んだプログラマーは好んで使います。覚えておきましょう。
irb> end
=> :check # これは「シンボル」です。後々出てくる話題です。rubyのソースコード内の変数やメソッドは全てシンボル化されて処理されます。
# 偽(false)になるパターン 
irb> check(nil)
=> false
irb> check(false)
=> false
# 真(true)になるパターン 
irb> check(0)
=> true
irb> check(0.0)
=> true
irb> check("0") 
=> true
irb> check("nil") 
=> true
irb> check("false") 
=> true
irb> check("")
=> true
irb> check([]) 
=> true
irb> check({}) 
=> true

なお、rubyにおいて比較演算(==、<、<=、>=、>など)すらもオブジェクトのメソッドですので、比較演算の評価で真偽が返ってくるのは、メソッドの戻り値としてtrueあるいはfalseが返ってくるからです。

if文を使っても同じです。例として体重の適性検査をしてみます。

irb> h = 175
=> 175
irb> w = 65
=> 65
irb> if h ** 2 * 22 / 10000 < w
irb> puts "Overweight!"
irb> else
irb> puts "Good!"
irb> end
Good!
=> nil

適正体重の計算は、


適正体重 = (身長m)の2乗 × 22 ÷ 10000

ですので、この値を自分の体重wと比較して、if文によって真偽の判定を行なっています。putsは引数でもらった値をコンソールに表示するメソッドです。



この記事が気に入ったらサポートをしてみませんか?