>>5
それ、nに0を与えた場合、戻り値は1になるだろ?

i<=nつまり1<=0は成り立たないからループせずに初期値の1がかえるでしょ。