帮助我修复此代码:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var i;
function fact(i) {
var n=1
for (x=1;x=i;x++) {
n*=i
}
}
function factorial() {
i=Number(prompt("what number to return the factorial"))
alert(fact(i))
}
</script>
</head>
<body>
<button onclick="factorial()">Factorial.</button>
</body>
</html>
当我运行我的文件时,它显示页面无响应。 这个代码怎么了? 是for循环,变量“i”还是其他什么错误?
有很多事情是错的。 首先,您的for循环是不正确的。 您的for循环是for(x=1;x=i;x++){
,而它应该是for(x=1;x<=i;x++){
,这意味着您的循环永远不会结束。此外,您永远不会返回最终数字,这意味着您无法访问它。您的fact
函数应该如下所示:
function fact(i) {
var n = 1;
for (var x = 1; x <= i; i ++) {
n *= x;
}
return n;
}