だから、私はそれを1桁に減らすループを作成しようとしています。私が数学をやっているのは、それぞれの数を一つずつ増やしていくことです。この場合、9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 = 108である。私はそれを実行し、108が9よりも大きく、結果が9未満になるまでそれを行うことをチェックしたい。それはちょうどループで立ち往生する。私はNaNを返すバリエーションも試しました。JavaScriptネストされたWhileループ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未満になることはありません。 –