所以我试图在Javascript中制作一个简单的Fibonacci生成器,但它似乎不起作用!我在我的浏览器(Chrome)以及JSFiddle中都尝试过它,但仍无法正常工作。任何人都知道这里发生了什么?似乎它甚至没有进入该功能,因为没有弹出警报。
<html>
<head>
<script type='text/javascript'>
function fib()
{
alert('In fib function');
var c = parseInt(document.getElementById('f').value, 10);
var o = document.getElementById('o');
var x = 0;
var y = 1;
var z = 0;
for (i = 0; i < 0; i++)
{
o.innerHTML += '\n' + x;
z = x + y;
x = y;
y = z;
}
return false;
}
</script>
</head>
<body>
<form onsubmit='return fib()'>
<input id='f' type='text'></input>
<input type='button' value='Submit' onClick='return fib()'
<pre id='o'></pre>
</body>
</html>
答案 0 :(得分:0)
<input.../>
或<input...>
。第二个输入元素未关闭。 >
应添加到最后。
for (i = 0; i < 0; i++) {
此循环不会执行,因为如果您最初将i
设置为0并从那里开始递增,{{1}}永远不会小于0。
以下是修订版 - http://jsfiddle.net/wrg8Z/
答案 1 :(得分:0)
您的代码存在两个问题。首先,正如大卫指出的那样,你实际上不会打印任何数字,因为循环永远不会执行。其次,您忘记关闭使用<input>
标记的第一个<pre>
标记,这是您尝试提供输出的位置。通过工作输出看到这个更新的小提琴:
答案 2 :(得分:0)
正如大卫所说,因为增量条件无效,所以for循环你不会工作。当i = 0时;并且你说“增加直到它小于0”这是不会发生的。
答案 3 :(得分:0)
在您的代码中:
> function fib() {
> alert('In fib function');
> var c = parseInt(document.getElementById('f').value, 10);
c
未使用。
> var o = document.getElementById('o');
>
> var x = 0;
> var y = 1;
> var z = 0;
>
> for (i = 0; i < 0; i++)
i
未声明,因此在达到此行时变为全局。您正在从0迭代到0,因此循环永远不会执行。