Javascript For循环已初始化但未输入
我的for循环适用于某些值,而不适用于其他值。区别似乎是我初始化时使用的计数器。举个例子,Javascript For循环已初始化但未输入,javascript,for-loop,initialization,Javascript,For Loop,Initialization,我的for循环适用于某些值,而不适用于其他值。区别似乎是我初始化时使用的计数器。举个例子,timesTable12和startFrom1始终有效。但是如果我将开始从更改为3则什么也不会发生 var timesTable = prompt("Enter times table value:", ""); var startFrom = prompt("Enter startfrom value:", ""); manyTimes(timesTable,startFrom); function
timesTable
12和startFrom
1始终有效。但是如果我将开始从
更改为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/>");
}
}
var timesTable=prompt(“输入时间表值:”,“”);
var startFrom=prompt(“输入startFrom值:,”);
许多时间(时间表、起始时间);
函数多次(基值、起始值){
var loopCounter=起始值;
对于(;loopCounter调试器清楚地显示您的边界是字符串,根据字典顺序,“3”优于“12”,因此您永远不会满足循环条件。调试器清楚地显示您的边界是字符串,“3”优于“12”根据字典顺序,因此永远不会满足循环条件。在比较和递增之前,需要将字符串解析为数字
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/>");
}
}
函数多次(基本值、起始值){
baseValue=parseInt(baseValue,10)
var loopCounter=parseInt(起始值,10);
对于(;loopCounter,您需要在比较和递增之前将字符串解析为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/>");
}
}
函数多次(基本值、起始值){
baseValue=parseInt(baseValue,10)
var loopCounter=parseInt(起始值,10);
for(;loopCounter原因:string comparison,而不是数字。原因:string comparison,而不是数字。谢谢!我发现我对调试器的经验不足才是真正的问题。我最后在读取值的位置附近添加了parseInt()。以明确我希望如何处理它们。manyTimes(parseInt(timetable),parseInt(startFrom));
谢谢!我发现我对调试器的经验不足才是真正的问题。我最后在读取值的位置附近添加了parseInt()。以明确我希望如何处理它们。很多时候(parseInt(timesTable),parseInt(startFrom));