>>591
!0 は 1 になる(よね?まあ、1でなくてもなにか特定0以外の数字になる)
で 3 や 5 は非false な訳だが、
true == 3
は偽になる