function throw_(x){ if(x<0){ throw new Error("x不能为负数") }else{ for (var f=1;x>1;f*=x,x--){ document.write(f+"<br/>") } } } try{ var n=Number(prompt("请输入一个正整数","")); var f=throw_(n); document.write(f); alert(n + " = " +f); }
你的throw_这个函数没有返回值吧?
我加个这个return 函数里面的for循环就只能执行一次
@leestar: 肯定只执行一次啊。你把return f写在for循环外面,循环完在return f回去
@加洲旅馆2012: 嗯 谢谢
这个是代表你这个f没定义。
定义了的呀,如果没定义的话直接就会报错了
throw函数的返回值是什么?没有的话就是undefined。
我这样写 return f的话上面的for就只会执行一次
@leestar: 不太明白你是要取每个过程f的值还是f的最终值。如果取过程值可以用个数组把每个值保存起来,然后返回这个数组,如果取最终值,可以在for循环体外return f。