有没有javascript循环的替代品?

时间:2016-04-29 18:20:55

标签: javascript html forms

我正在开发一个程序,我来到了一个我想循环一个值然后用它来测试if语句的用户输入的点,但问题是我无法使用循环的值。

至少这就是我的想法,然后我尝试将if语句作为循环语句应该执行的代码之一,令人惊讶的是它起作用,但是当我尝试更多那个if语句时(即。else if) ,它只执行了我的一个if语句。

请问有其他方法可以使用吗?

下面是代码(输入0到10之间的数字)

<input type="number" id="i" />

<input type="button" value="submit"  onclick="result()" />

    <p id="k"></p>
 <script>
 function result (){ 
 //first method 

    var x= i.value; 
    var y = 0



    while (y<10){
     y++
    }
     if (x==y) {
      document.getElementById("k").innerHTML = "correct"     
}
  / * it didn't work probably because the if statement assumes y to be 0. /*

 //second method 

         while (y<10){
    y++

     if (x==y) {
      document.getElementById("k").innerHTML = "correct"  
   } 
     else if (x >y ) {

    document.getElementById("k").innerHTML ="wrong"
   }   
   }
     //it only tested one of the if statement 
      </script>

或者有其他方式而不是循环吗?

1 个答案:

答案 0 :(得分:1)

您的代码存在一些问题:

  • 第一个实例if语句不在循环内。
  • 完成循环后,您想要使用break;
  • 退出循环
  • 在第二个实例中,else if块应出现在循环之后。为什么?例如,用户输入2。在循环的第一次迭代中2==1将失败,2 > 1将为真,但这不是错误的答案。当x > y本身为&gt; = 10时,y只是错误的答案。

您可以检查值本身是否大于0且小于10,而不是循环,您可以根据需要组合多个条件。

 function result (){ 
   //first method 

   var x= Number(i.value); // Number isn't necessary.
   if  ( (x > 0) && (x < 10) ) { // The && means "and", so if x is greater than 0 and less than 10. 
       document.getElementById("k").innerHTML = "correct";
   } else {
       document.getElementById("k").innerHTML = "wrong";
   }
 }