我的for循环正在为某些值而不是为其他值而工作。差异似乎是我初始化的计数器。举个例子,timesTable
12和startFrom
1始终有效。但如果我将startFrom
更改为3
则不会发生任何事情。
var timesTable = prompt("Enter times table value:", "");
var startFrom = prompt("Enter startfrom value:", "");
manyTimes(timesTable,startFrom);
function manyTimes(baseValue, startValue){
var loopCounter = startValue;
for (; loopCounter <= baseValue; loopCounter++)
{
result = baseValue * loopCounter;
document.write(baseValue + " * " + loopCounter + " = " + result + "<br/>");
}
}
调试器实际上显示了初始化,但document.write
从不触发。
任何人都知道这导致了什么?
答案 0 :(得分:2)
调试器清楚地显示您的边界是字符串,&#34; 3&#34;优于&#34; 12&#34;根据词典顺序,你永远不会满足循环条件。
答案 1 :(得分:2)
您需要在比较和增量之前将String解析为数字
function manyTimes(baseValue, startValue){
baseValue = parseInt(baseValue,10)
var loopCounter = parseInt(startValue,10);
for (; loopCounter <= baseValue; loopCounter++)
{
result = baseValue * loopCounter;
document.write(baseValue + " * " + loopCounter + " = " + result + "<br/>");
}
}