我正在尝试使用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>
答案 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>