0

だから私はJavascriptで簡単なフィボナッチジェネレーターを作ろうとしていましたが、うまくいかないようです!ブラウザ(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>
4

4 に答える 4

0
  1. input要素には終了タグを付けないでください。要素は「自己完結型」であり、基本的に<input.../>またはとして記述する必要があり<input...>ます。
  2. 2番目の入力要素は閉じません。>最後に追加する必要があります。

  3. for (i = 0; i < 0; i++) {

このループは、i最初に0に設定してそこからインクリメントする場合、0未満になることはないため、実行されません。

これが改訂版です-http://jsfiddle.net/wrg8Z/

于 2012-09-10T22:59:30.703 に答える
0

コードには2つの問題があります。まず、Davidが指摘したように、ループは実行されないため、実際には数値を出力しません。次に、出力を配信しようとしていた場所であるタグ<input>を消費した最初のタグを閉じるのを忘れました。<pre>動作する出力を備えたこの更新されたフィドルを参照してください。

http://jsfiddle.net/6neQU/

于 2012-09-10T23:02:57.897 に答える
0

Davidが言うように、増分条件が無効であるため、forループは機能しません。i=0の場合; そして、あなたは「それが0未満になるまでiをインクリメントする」と言っていますが、それは起こりません。

于 2012-09-10T23:04:45.293 に答える
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まで反復しているため、ループは実行されません。

于 2012-09-10T23:11:29.123 に答える