【问题标题】:Is there an alternative to javascript loop? [closed]有没有替代javascript循环的方法? [关闭]
【发布时间】:2016-08-25 00:19:57
【问题描述】:

我正在编写一个程序,我想循环一个值,然后用 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>

或者还有其他方法可以代替循环吗?

【问题讨论】:

  • 你知道正确的值,你为什么要循环遍历任何东西?
  • while(y&lt;10) { y++ }?那有什么意义呢?这只是y=10的大量资源浪费版本
  • 如果我错了,请告诉我另一种方法
  • @Imran 写var y = 10;

标签: javascript html forms


【解决方案1】:

您的代码存在一些问题:

  • if 语句的第一个实例不在循环内。
  • 一旦你完成了循环,你想用break;退出它
  • 在第二种情况下,else if 块应该出现在循环之后。为什么?例如,用户输入2。在循环的第一次迭代中,2==1 将失败,2 &gt; 1 将为真,但这不是错误的答案。只有当y 本身 >= 10 时,x &gt; 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";
   }
 }

【讨论】:

  • 非常感谢,非常感谢
  • 如果答案或评论有帮助,请投票(点击向上箭头)。如果某个答案有助于解决您的问题,请将其标记为答案。
猜你喜欢
  • 2020-10-04
  • 1970-01-01
  • 2013-04-09
  • 1970-01-01
  • 2021-11-09
  • 2010-12-25
  • 2011-05-21
  • 2015-05-21
  • 2011-01-16
相关资源
最近更新 更多