言語別、if文でtrue(真)/false(偽)になる場合について
if文の条件式ですが、true(真)になるかfalse(偽)になるかの判定は、言語によって異なります。
以下の「$hogeの値」が、どのような場合に真or偽になるか簡単にまとめました。
1 2 3 |
if($hoge){ … } |
C言語
0(int型)のみが偽となり、それ以外がすべて真。
偽 | 0(int型)のみ |
---|---|
真 | 0(int型)以外すべて |
(bool型はC言語にはありません)
C++
0(int型)とfalseのみが偽となり、それ以外がすべて真。
偽 | 0(int型)、false |
---|---|
真 | 0(int型)、false以外すべて |
Java
falseのみが偽で、trueのみが真。
偽 | falseのみ |
---|---|
真 | trueのみ |
Javascript
false、undefined、null、+0、-0、NaN、””(空文字)が偽で、それ以外は真。
偽 | false、undefined、null、+0、-0、NaN、
“”(空文字) |
---|---|
真 | 偽に記載した内容以外すべて |
Javascriptでは、Objectはすべて真になる。空の配列も真となるので要注意です。
Ruby
false、nil が偽で、それ以外は真。
偽 | false、nil のみ |
---|---|
真 | false、nil 以外すべて |
PHP
表の通りです。
偽 | booleanのfalse
integerの0(ゼロ) floatの0.0(ゼロ) 空の文字列および文字列の”0″ 要素の数がゼロの配列 メンバ変数の数がゼロであるオブジェクト(PHP4のみ) NULL、NaN、nil |
---|---|
真 | 偽に記載した項目以外は真 |
Perl
表の通りです。
偽 | 文字列 “”、”0”
数値 0 すべての未定義値 |
---|---|
真 | 文字列:””と”0″以外すべて
数値:0以外すべて すべてのリファレンス |
まとめ
他にも色々な言語がありますが、こちらに記載した言語だけでも、言語によって条件判定が異なることがわかります。
忘れがちな箇所ですし、条件判定は大事な箇所ですから、迷ったり自信がない場合はしっかりと確認しましょう!