我遇到一个问题,即使该语句的计算结果应该为 false,但我的计数器变量仍在递增。
即使 else if
递增 wrongAnswers
变量, CorrectAnswers
变量也会继续递增。 unanswered
变量似乎也双倍递增,就好像该语句触发了两次一样。我似乎无法确定问题发生在哪里。
$("#quiz").on("click", function() {
if ($("input[name=question-1]:checked").val() === "correct") {
correctAnswers++;
unanswered--;
} else if ($("input[name=question-1]:checked").val() === "wrong") {
wrongAnwers++;
unanswered--;
}
if ($("input[name=question-2]:checked").val() === "correct") {
correctAnswers++;
unanswered--;
} else if ($("input[name=question-2]:checked").val() === "wrong") {
wrongAnwers++;
unanswered--;
}
console.log("correct " + correctAnswers);
console.log("wrong " + wrongAnwers);
console.log("unanswered " + unanswered);
});
最佳答案
我用所有可能的真/假组合遍历了逻辑。除了您没有将未回答的问题算作错误答案之外,没有任何变量出现无法解释的增量。我将 Console.log 记录每个变量的初始值(在 if 语句之前),并在每个 if 语句之间再次记录。
另一件事是确保您使用的是单选按钮而不是复选框。
fiddle : https://jsfiddle.net/TimothyKanski/y4upr5j8/
如果您想将未回答的问题计为错误,请添加 Else:
if (a) {
correctAnswers++;
unanswered--;
} else if (b) {
wrongAnwers++;
unanswered--;
}
else{
wrongAnwers++;
}
关于javascript - 计数器根据定义的逻辑递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43010503/