我做了一段时间函数,它可以在大约一半的时间内正常工作。有时虽然它根本不加载函数,或者加载下一部分函数来完成其循环。就我所能看到的语法而言,没有任何问题,但我对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