我在jslint.com和jshint.com上检查了我的javascript代码,它说没有错误。但出于某种原因,我的代码并没有按照我的意愿运行。似乎while语句不起作用或者在while语句之后停止:
function aMode() {
personData();
if (Enchance1.value == 10) {
Taken = Taken + (1.25 * EnhanceLevel1.value);
}
if (Enhance1.value == 20) {
Taken = Taken + (EnhanceLevel1.value * 1.37);
}
if (Enhance2.value == 10) {
taken2 = t
----------
Taken2 + (1.25 * EnhanceLevel2.value);
}
if (Enhance2.value == 100) {
Taken2 = Taken2 + (EnhanceLevel2.value * 1.37);
}
while (HP1 <= 0) {
HP1 = HP1 - Taken2;
tries1 = tries1 + 1;
}
while (HP2 <= 0) {
HP2 = HP2 - Taken1;
tries2 = tries2 + 1;
}
if (tries1 > tries2) {
//document.getElementById('personWon').innerHTML = person1.value;
alert(person1.value + "won!");
} else if (tries1 < tries2) {
//document.getElementById('personWon').innerHTML = person2.value;
alert(person2.value + "won!");
}
//alert("test"); <- test
}
问题是,在HTML中,它通过按钮运行函数时,它只从if语句运行到第一个while语句。我知道这一点,因为我把alert("test")
放在最后,看它是否运行整个代码。我知道我拼写了正确的函数,因为如果我把alert("test")
放在开头,它就可以了。这是按钮的代码:<button id="typeMode" onclick="aMode()">Click me!</button>
。更具体地说,它是在具有某一类的div中。我提出的另一件事是&#34;使用严格;&#34;在我的javascript代码的第一行。
我使用了错误的语法吗?是因为我忘了放一个分号&#39 ;;&#39;还是什么?
感谢任何帮助!
答案 0 :(得分:3)
如果HP
小于或等于0
,则您的循环正在运行。你可能想要交换比较。
while (HP1 >= 0) {
HP1 = HP1 - damageTaken2;
hits1 = hits1 + 1;
}
while (HP2 >= 0) {
HP2 = HP2 - damageTaken1;
hits2 = hits2 + 1;
}
if (hits1 > hits2) {
//document.getElementById('playerWon').innerHTML = player1.value;
alert(player1.value + "won!");
} else if (hits1 < hits2) {
//document.getElementById('playerWon').innerHTML = player2.value;
alert(player2.value + "won!");
} else {
alert("draw!");
}