2016-04-29 60 views
-5

我正在研究一个程序,我来到了一个点,我想循环一个值,然后用它来用if语句测试用户的输入,但问题是我无法使用循环的值。是否有替代JavaScript循环?

至少这就是我的想法,然后我试着将if语句作为循环语句应该执行的代码之一,令人惊讶的是它能够工作,但是当我尝试了更多的if语句时(例如,如果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> 

或者是有循环的另一种方式呢?

+0

你知道正确的值,为什么你循环任何事情? – dave

+2

'while(y <10){y ++}'?那有什么意义呢?这只是一个巨大的资源浪费版本'y = 10' –

+0

如果我错了,请告诉我一种替代方法 – Imran

回答

1

一些问题,你的代码:

  • 一审if说法是不循环内部。
  • 一旦你完成循环,你想退出它break;
  • 在第二个例子中else if块应该出现在循环之后。为什么?例如,用户输入2。在循环的第一个迭代中2==1将失败,2 > 1将是真实的,但它不是错误的答案。 x > y只是错误的答案时y本身就是> = 10

相反循环,你可以检查本身的价值是大于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"; 
    } 
} 
+0

非常感谢,我真的很感谢 – Imran

+0

如果答案或评论有帮助,将它投票(点击向上箭头)。如果答案有助于解决您的问题,请将其标记为答案。 – notacouch