JavaScript嵌套while循环,循环无限
问题描述:
所以我试图创建一个循环,将减少任何数字放到它的单个数字。我做数学的方式是逐个添加每个数字。在这种情况下,9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 = 108。我希望它能够通过并检查108是否仍然大于9,直到结果小于9.它只会陷入循环。我也尝试过一些会返回NaN的变体。JavaScript嵌套while循环,循环无限
<html>
<body>
<h1>Reduce Loop</h1>
<p id="Result"></p>
<script type="text/javascript">
//Defined var start
var Result = 0;
var TempReduce1 = 0;
var LoopTempLength = 0;
var LoopTempString;
var i = 0;
//Defined var end
//The LongNumber variable represents user input
var LongNumber = 999999999999;
//Converts LongNumber to a integer
var LoopTemp = parseInt(LongNumber);
//Check if LoopTemp is greater than 9; it is
while (LoopTemp > 9) {
//Gets the Length of LoopTemp by converting it to a string and grabbing the length to then convert back to a integer
LoopTempLength = parseInt(LoopTemp.toString().length);
//Converts LoopTemp to a string for manipulation
LoopTempString = LoopTemp.toString();
i = 0;
//Check to see if i is less than the length of LoopTempLength
while (i < LoopTempLength) {
//Grabs the number in relationship to i, converts it to a integer and added it to TempReduce1
TempReduce1 += parseInt(LoopTempString.charAt(i));
i++;
}
LoopTemp = TempReduce1;
}
Result = LoopTemp;
document.getElementById("Result").innerHTML = Result;
</script>
</body>
</html>
答
所以帕特里克埃文斯是对的。我在你的代码插入
TempReduce1=0;
行
i=0
后和日常踢出9正如人们所期望。
+0
谢谢!这似乎解决了我的问题! –
每一步的状态变化是什么?这与应该发生的事情有何不同? – user2864740
@ user2864740我不确定。这是我第一次尝试使用JavaScript。我不完全确定如何正确调试它。我可以告诉你的是,当我尝试运行代码时,它锁定并崩溃。向我表明它陷入了一个循环。你有推荐吗? –
你永远不会重置'TempReduce1',所以你总是加入最后一笔金额,然后将它分配回'LoopTemp',所以它永远不会小于9,除非初始循环不加起来为9 –