我的for循环适用于某些值,而不是其他值。区别似乎是我用它初始化的计数器。举个例子,timesTable12和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从不触发。
调试器在工作中的图像
有人知道这是怎么回事吗?
发布于 2016-05-03 14:15:53
调试器清楚地显示,您的边界是字符串,根据字典顺序,"3“优于"12”,因此您永远不满足循环条件。
发布于 2016-05-03 14:15:56
您需要在比较和增量之前将字符串解析为number。
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/>");
}
}https://stackoverflow.com/questions/37006634
复制相似问题