0
所以我試圖創建一個循環,將減少任何數字放到它的單個數字。我做數學的方式是逐個添加每個數字。在這種情況下,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>
每一步的狀態變化是什麼?這與應該發生的事情有何不同? – user2864740
@ user2864740我不確定。這是我第一次嘗試使用JavaScript。我不完全確定如何正確調試它。我可以告訴你的是,當我嘗試運行代碼時,它鎖定並崩潰。向我表明它陷入了一個循環。你有推薦嗎? –
你永遠不會重置'TempReduce1',所以你總是加入最後一筆金額,然後將它分配回'LoopTemp',所以它永遠不會小於9,除非初始循環不加起來爲9 –