2016-09-29 8 views
0

私はプログラミングが比較的新しく、私は大学の研究でWebプログラミングコースを受講しています。 JavaScriptを使用して、0から最大までのすべての整数の合計を計算するforループを作成します。Forループ、制限は負の数です

正常に動作するために0以上のすべての整数を得ることができましたが、負の整数(たとえば-3)を入力すると、関数は合計0を返しません。私は単に何も返さない。以下にJavaScriptコードを含めます。誰かが助けてくれるヒントを持っているなら、私は大いに感謝しています!

document.getElementById('go').onclick = function() { 
    var limit = document.getElementById('limit').value; 
    var total = 0; 
    for (i = 0; i <= limit; i ++) { 
     total = total + i; 
     document.getElementById('total').value = total; 
    }; 
}; 
+0

移動 'のdocument.getElementById( '合計')の合計値=;' 'for'ループの終了 –

答えて

3

あなたの出力、document.getElementById('total').value = total;はループ内です。

移動し、それ外ループのか、それは実行されません(と何も表示されません)

ループが0回実行されるので、このループでこのラインが0回、あまりにも実行されます。

+0

後には何。 'for'ループの中にこの行を置くことの問題 - なぜそれが実行されないのでしょうか? – vlaz

+0

ループは0回実行されるため、ループ内のこの行も0回実行されます。 – Dimava

+0

はい、しかし、この説明は答えに属します。 OPは明らかにそれを知らない、そうでなければ彼は問題を発見しただろう。推論を説明せずに単に「しないでください」と言っても、彼はそれを知ることができません。 – vlaz

0

あなたはちょうどそれが常にあってもその0による負の数に合計をレンダリングするループのためのそのように外で、一番下にdocument.getElementById('total').value = total;

を動かすforループ内で値を設定します。

document.getElementById('go').onclick = function() { 

var limit = document.getElementById('limit').value; 

var total = 0; 

for (i = 0; i <= limit; i ++) { 

    total = total + i; 



}; 
document.getElementById('total').value = total; 
}; 
+0

ありがとうございました! –

0

あなたは、forループの外に、値をID totalを持つ要素に割り当てられている最後の行を、移動する必要があります。制限が0より小さい場合、ループ内のコードは決して実行されません。

は、以下のコードを実行してみましょう:

document.getElementById('go').onclick = function() { 
 

 
    var limit = document.getElementById('limit').value; 
 

 
    var total = 0; 
 

 
    for (i = 0; i <= limit; i++) { 
 
    total = total + i; 
 
    } 
 

 
    document.getElementById('total').value = total; 
 
};
Limit: <input id="limit" type="number" value="3" /><br /> 
 
<input id="total" type="text" /> 
 
<button id="go">Go</button>

+0

ありがとうございました! –

関連する問題