2016-05-03 6 views
0

My forループは他の値では使用できません。違いは私が初期化するカウンターのようです。例を挙げると、timesTable 12とstartFrom 1が常に有効です。しかし、startFrom3に変更しても何も起こりません。ループは初期化されていますが入力されていません

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はトリガしません。

Image of debugger in action

誰もが一体これの原因を知っていますか?

+0

原因をインクリメントする必要があります。 [FYI](https://jsfiddle.net/pzvvzn47/) –

答えて

2

デバッガでは境界が文字列であることが明確に示されており、 "3"は辞書順に従って "12"よりも優れているため、ループ条件を満たすことはありません。数字の代わりに、文字列comparaison:

2

あなたが比較の前に文字列を数値に解析し、

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/>"); 
    } 
} 
+0

ありがとう!私はデバッガの経験がないことが本当の問題だと思っています。私はparseInt()の値をどこに読み込むのかを近づけてしまいました。 'manyTimes(parseInt(timesTable)、parseInt(startFrom));' –

関連する問題