出于某种原因,我很难让这个 while 循环工作。每当我尝试对其进行测试时,它都会使我的浏览器崩溃,并且在一种情况下,我能够在控制台中看到循环的结果,我所看到的只是打印了几次 NaN。我在代码中忘记了什么吗?
<div id="output"></div>
<script>
var starting = prompt("What is your starting balance?");
var target = prompt("What is your target balance?");
var interest = prompt("What is your interest rate?");
var periods = 0;
var current = starting;
var greaterThan = false;
while (greaterThan === false) {
if (current < target) {
current = current + (current * interest);
periods++;
} else {
greaterThan = true;
alert("it took " + periods + " periods to make your starting balance greater than your target balance.");
document.querySelector('#output').textContent = "to grow an initial investment of " + starting + " to " + target + " at a " + interest + " interest rate will require " + periods + " investment periods.";
}
}
</script>
最佳答案
我能看到的一个问题是,您所有的输入值都是字符串,而不是数字,所以他们进行的是字符串比较而不是数字
var starting = +prompt("What is your starting balance?") ||0;
var target = +prompt("What is your target balance?")||0;
var interest = +prompt("What is your interest rate?")||1;
prompt()
前面的+
就是unary plus运算符(operator)
关于javascript - 为什么这个 while 循环会导致无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32858177/