2016-04-29 15 views
-5

私はプログラムで作業していましたが、値をループしてifステートメントでユーザーの入力をテストするために使用したいところまで来ましたが、ループの値を使用できないという問題がありました。javascriptループの代替手段はありますか?

少なくとも私の考えでは、ループ文が実行されるはずのコードの1つとしてif文を入れようとしましたが、驚いたことにそれはうまくいきました。 )、それは私のif文の1つだけを実行しました。

代替方法がありますか?

<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と10の間の数)ですか?

+0

あなたは正しい値を知っていますが、なぜ何かをループしていますか? – dave

+2

while(y <10){y ++} '?そのポイントは何ですか?それはちょうど 'y = 10'の大量のリソースを無駄にしています –

+0

間違っている場合は、別の方法を教えてください – Imran

答えて

1

あなたのコードを持ついくつかの問題:

  • 最初のインスタンスif文はループ内ではありません。あなたがループして完了したら
  • あなたはelse ifブロックがループの後に表示される2番目のインスタンスではbreak;
  • でそれを終了します。どうして?たとえば、ユーザは2と入力します。ループ2==1の最初の繰り返しでは、2 > 1が真となりますが、それは間違った答えではありません。 x > yy自体が> = 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

関連する問題