2 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊
問(wèn)題:?jiǎn)栴}是你的for-loop的條件語(yǔ)句是always ,這會(huì)導(dǎo)致無(wú)限循環(huán),因此頁(yè)面無(wú)響應(yīng)。在這種情況下也不需要為函數(shù)提供參數(shù)true
解決方案:
這個(gè)問(wèn)題可以用數(shù)學(xué)方法解決,無(wú)需循環(huán)。
// BEST APPROCH
function divisibleBy() {
var firstNum = parseInt(document.getElementById('firstNumber').value);
var secondNum = parseInt(document.getElementById('secondNumber').value);
var result = secondNum*parseInt(firstNum/secondNum+1);
document.getElementById('result').innerHTML = result;
}
但是,如果您確實(shí)需要使用循環(huán),這里是解決方案,但請(qǐng)記住,在for 循環(huán)中設(shè)置限制幾乎與上述解決方案相同(或?qū)l件設(shè)置為i <= firstNum*secondNum,因?yàn)樗谟龅浇鉀Q方案時(shí)已經(jīng)有了break語(yǔ)句)
// WORST APPROCH
function divisibleBy() {
var firstNum = parseInt(document.getElementById('firstNumber').value);
var secondNum = parseInt(document.getElementById('secondNumber').value);
for (var i = firstNum+1; i <= secondNum*(firstNum/secondNum+1); i++) {
if (i % secondNum === 0) {
document.getElementById('result').innerHTML = i;
break;
}
}
}
但我建議使用循環(huán),這將更令人滿意地解決這個(gè)問(wèn)題,并忽略對(duì)上述代碼中的do-While限制進(jìn)行不必要的計(jì)算。i
// BEST LOOP/SIMPLE APPROCH
function divisibleBy() {
var firstNum = parseInt(document.getElementById('firstNumber').value);
var secondNum = parseInt(document.getElementById('secondNumber').value);
do{
firstNum++;
}
while(firstNum%secondNum != 0)
document.getElementById('result').innerHTML = firstNum;
}

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
你正在使用 for (var i = firstNum + 1; i > firstNum; i++)并且這個(gè)條件總是滿足。因此它會(huì)無(wú)限循環(huán)。
嘗試這個(gè) :
for (var i = firstNum + 1; ; i++) {
if (i % secondNum === 0) {
document.getElementById('result').innerHTML = I;
break;
}
}
添加回答
舉報(bào)