Rubyにおける「真」と「偽」の判定
Ruby及びその他の言語に於ける真と偽の扱いのメモ。
「真」と「偽」の扱い
if文やwhile文での条件判定に使う「真」と「偽」の扱いはプログラム言語により様々だったりします。
例えばC言語ではint型の0が「偽」であり、それ以外が「真」です。Java言語ではプリミティブ型であるbooleanが用意されており、trueが「真」、falseが「偽」として扱われます。
では、Rubyはどうなの?ということで調べて見ますと、Rubyではfalseとnilが「偽」、それ以外が「真」として扱われます。
実際の挙動を見てみましょう。
プログラム
if nil puts "nil is true" else puts "nil is false" end if false puts "false is true" else puts "false is false" end if 0 puts "0 is true" else puts "0 is false" end if 1 puts "1 is true" else puts "1 is false" end
実行結果
nil is false false is false 0 is true 1 is true
このように、0が「偽」扱いにはならないという点はRubyを使う上で留意する必要がありますね。