我做了一段時間函數,它可以在大約一半的時間內正常工作。有時雖然它根本不加載函數,或者加載下一部分函數來完成其循環。就我所能看到的語法而言,沒有任何問題,但我對Javascript仍然陌生。我無法看到代碼中的任何地方可能導致自己認爲它陷入了無限循環。那麼這裏是我的代碼,如果你能幫到那將是非常棒的。JavaScript函數有時會將自身循環到一個無限循環中
var dragHunt = true;
var hitOrMiss = Math.floor(Math.random() * 2);
var dmgOnHit = 0;
var totalDmg = 0;
var playerHealth= 0;
var dragHitOrMiss = Math.floor(Math.random() * 1.5);
var dragDmg= 0;
while(dragHunt){
if(hitOrMiss){
dmgOnHit = Math.floor(Math.random() * 5 + 1);
alert("You hit the dragon, the luck is with you today. You did " + dmgOnHit + " damage!");
totalDmg += dmgOnHit;
if(totalDmg >= 20){
alert("You did it! You have killed the dragon. The hunt was successful!");
dragHunt=false;
}
else{
hitOrMiss = Math.floor(Math.random() * 2);
}
}
else{
if(dragHitOrMiss){
dragDmg = Math.floor(Math.random() * 5 + 1);
alert("The Dragon hit you for " + dragDmg + " damage!");
playerHealth += dragDmg;
if(playerHealth >= 80){
alert("The dragon has burnt you to a crisp. You stood no chance against the ferocious beast.");
dragHunt=false;
}
else{
hitOrMiss = Math.floor(Math.random() * 2);
}
}
}
}
問題似乎是'hitOrMiss'和'dragHitOrMiss'都是假的。 – Oriol