或るプログラマの開発日記

日々の勉強したことの備忘録なんかに使っていきます

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を使う上で留意する必要がありますね。

参考URL

その他の言語はどうだっけ?という事で調査してみたら、上手く纏めていただいているページがありました。非常に参考になります。

blog.mirakui.com