遇到“for”语句的问题,或者可能混淆如何正确实现该语句。

时间:2013-08-08 10:23:29

标签: javascript

我正在尝试使用JavaScript构建数学测试应用程序。但我对FOR语句有疑问,我想要它做的是为每个回答正确的问题在分数上加一点。为了测试它,我已将分数设置为0,userID将是用户输入,如果用户输入正确的答案,它将增加到1,但它会持续增加到10.有没有办法在第一个循环后停止计数并等到第二个循环,直到它达到10?

<!doctype html>
<html>
<head>
</head>

<body>

<div id="scoreBlock"><span id="score">0</span></div>
<input type="text" id="userID"/>
<button onclick="begin();">Start</button>



<script>
function begin(){

var h= document.getElementById("score");
var user =document.getElementById("userID").value;
var test = "5";

for(h=0;h<=10;h++){
if(user==="5"){

document.getElementById("score").innerHTML= h;

}else if(!user==="5"){

alert("noting");
}

}//end of while
}//end of function
</script>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

在此测试中,您认为当用户== 5时会出现正确答案。您在不更改条件的情况下执行了10次。很明显这是正确答案的10倍。

<script>
function begin(){

var user = document.getElementById("userID").value;
var test = "5";
var correctAnswer = 0;

for(var h=0;h<=10;h++){
    if(user==="5"){
        correctAnswer++;
    }
}

document.getElementById("score").innerHTML= correctAnswer;

if (correctAnswer == 0) {
    alert("noting");
}
</script>

答案 1 :(得分:0)

如果我正确理解您的问题,您希望每次用户点击按钮时更新分数,并检查用户的值是否与测试相同。在这种情况下,您不需要For循环。

<script>
var score = 0; 
var test = "5";

function begin(){
  var user = document.getElementById("userID").value;
  if(user === test) {
    score++;
  }
  document.getElementById("score").innerHTML= score;
}
</script>