2017-10-13 18 views
-1

我有一個0-5的html選擇列表。我從列表中選擇一個數字,例如4,我想讓程序吐出5.因爲0,1,2,3,4是5個數字。目前我的循環只是將數字添加到15.我的for循環中的邏輯有些問題。用於循環統計從0到一個數字的整個數字javascript

document.getElementById('go').onclick = function() { 
var topValue = document.getElementById('number').value; 
topValue = parseFloat(topValue); 
number = 0; 
for (n = 0; n <= topValue; n++) { 
    number = number + n; 
}; 
document.getElementById('result').value = number; 
}; 
+0

「我的for循環中的邏輯有什麼問題」是什麼意思?你能提供一個最小可重現的例子(plunker/jsfiddle)嗎? –

+4

也許我的閱讀不正確,但是你不想只是'topValue + 1'呢? –

回答

0

我不知道我是否正確地得到了你的疑問,但我會盡力幫助:

這是發生,因爲您要添加的變量「n」變量「數」的價值...

for循環接收三件事(basicly /簡體):

  • 起始值
  • 最大值(在哪裏停止,我們ually當條件爲真)
  • 其「速度」(計數器將有多大增加或減少)

你的循環執行時topValue爲4:

  1. 執行1:號碼執行3:number =(number + n)=>(0 + 0)= 0
  2. 執行2:number =(number + n)=>(0 + 1)= 1
  3. 執行3: =>(1 + 2)= 3
  4. 執行4:數=(數+ N)=>(3 + 3)= 6
  5. 執行5:數=(數+ N)=>(6 + 4)= 10

如果只想計數多少個零的數字(含)之間存在和topValue你就必須把這個你的循環中:

number++; 
0

如果我理解正確的話,你不需要一個循環。它總是比選擇的數字多一個。

document.getElementById('go').onclick = function() { 
    var topValue = document.getElementById('number').value; 

    topValue = parseFloat(topValue); 

    document.getElementById('result').value = number + 1; 
}; 
相關問題