ifの条件節で偽となるのは0かundefのときだけじゃなかったっけ?

普通に個数数えるべきだと思うが