【发布时间】:2021-03-16 19:57:19
【问题描述】:
我无法弄清楚为什么我的代码不起作用。这是一个非常简单的程序,所以我确定我缺少或没有看到某些东西,但我似乎无法弄清楚。请帮忙!
它应该做什么:取两个数并找到下一个大于第一个数并且也能被第二个数整除的数。
发生了什么:它基本上只是冻结了我的计算机,似乎循环只是继续运行而没有停止。
JS:
function divisibleBy(first, second) {
var firstNum = document.getElementById('firstNumber').value;
var secondNum = document.getElementById('secondNumber').value;
for (var i = firstNum + 1; i > firstNum; i++) {
if (i % secondNum === 0) {
document.getElementById('result').innerHTML = i;
}
}
}
HTML:
<body>
<header>
<h1>Let's Do Some Math!</h1>
<h2>Type in <u>two</u> numbers and let's figure out the next <br>
number greater than those two numbers but with a catch...<br>
the number has to be <u>divisible</u> by the second number you choose.</h2>
</header>
<hr>
<ul>
<li>
<label for="firstNumber">First Number:</label>
<input type="number" id="firstNumber">
</li>
<li>
<label for="secondNumber">Second Number:</label>
<input type="number" id="secondNumber">
</li>
<li>
<button type="submit" onclick="divisibleBy();">GO</button>
</li>
</ul>
<h2 id="result"></h2>
<hr>
</body>
【问题讨论】:
-
在您的
for循环中,您通过执行i++不断增加i。你告诉它在i > firstNum时继续运行。它永远不会停止。也许您打算使用i <= secondNum? -
我最终使用了一个 while 循环,我执行了 firstNum % secondNum != 0 然后递增 i,感谢您的帮助! @blex
标签: javascript loops if-statement dom