ここにnumが0未満のチェックを追加した方が良いと思います。