>>282
> 一方整数の 0 には特別な意味は無い。
> なので、if( !i ){} なんて書かない。

この場合は、ifの整数的利用法として解釈し、
機械的に if ( ! (i == 0)) と読み替えれば、
真偽値を期待された整数であろうと、
そうでない整数であろうと、ともに真偽値として意味する。