计数器递增以定义逻辑

时间:2017-03-24 23:03:12

标签: javascript jquery

我遇到了一个问题,即我的计数器变量正在递增,即使该语句应该评估为false。

即使correctAnswers递增else if变量,wrongAnswers变量也会继续递增。 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);
});

1 个答案:

答案 0 :(得分:1)

我使用了每个可能的true / false组合来运行逻辑。除了你没有将未回答的问题视为错误答案之外,任何变量都没有无法解释的增量。我将Console.log的每个变量的初始值(在if语句之前),以及每个if语句之间的初始值。

另一件事是确保使用单选按钮而不是复选框。

小提琴: https://jsfiddle.net/TimothyKanski/y4upr5j8/

如果您想将未回答的问题统计为错误,请添加Else:

  if (a) {
      correctAnswers++;
      unanswered--;
    } else if (b) {
      wrongAnwers++;
      unanswered--;
    }
    else{
      wrongAnwers++;
    }