【问题标题】:JavaScript Nested While Loop, Loops infinitelyJavaScript 嵌套 While 循环,无限循环
【发布时间】:2016-11-30 21:58:54
【问题描述】:

所以我正在尝试创建一个循环,将放入其中的任何数字减少到一位数。我做数学的方式是将每个数字一个一个地相加。在这种情况下 9+9+9+9+9+9+9+9+9+9+9+9=108。我希望它运行并检查 108 是否仍然大于 9 并一直执行到结果小于 9。它只是陷入了一个循环。我还尝试了一些返回 NaN 的变体。

<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>

【问题讨论】:

  • 每一步的状态变化是什么?这与应该发生的情况有何不同?
  • @user2864740 我不确定。这是我第一次尝试使用 JavaScript。我不完全确定如何正确调试它。我只能告诉你的是,当我尝试运行代码时它会锁定并崩溃。向我表明它陷入了一个循环。你有推荐吗?
  • 你永远不会重置TempReduce1,所以你总是添加到最后一个数量,然后你将它分配回LoopTemp,所以它永远不会小于9,除非初始循环没有'不加起来 9
  • 更改脚本并将debugger一词放在其顶部。在 Chrome 中打开。 Ctrl+Shift+i 打开开发工具。刷新页面并单步执行。
  • @BenAston 所以把&lt;script type="text/javascript"&gt;改成&lt;script type="debugger"&gt;

标签: javascript loops while-loop nested


【解决方案1】:

所以帕特里克·埃文斯是对的。我插入了

TempReduce1=0;

在你的代码行之后

i=0

如预期的那样,例程踢出了 9。

【讨论】:

  • 谢谢!这似乎解决了我的问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-13
相关资源
最近更新 更多