2016-11-21 4 views
0

私はこのスクリプトを実行しているときに、最初の番号を入力するよう促します。それはxを数えていないようです。Javascriptループがスクロール

function doMath() { 
    for (var x = 1; x < 3; x = x + 1) { 
     var var1; 
     var var2; 
     var var2; 
     var num; 
     if (x = 1) { 
      var num = prompt("Enter first number please"); 
      var1 = parseInt(num) 
     } 
     else if (x = 2) { 
      var num = prompt("Enter second number please"); 
      var2 = parseInt(num) 
     } 
     else { 
      var num = prompt("Enter third number please"); 
      var3 = parseInt(num) 
      return Math.min(var1, var2, var3); 
     } 
    } 
} 
+5

あなたは代入演算子の代わりに、比較のものを使用しています。 – Phil

答えて

1

あなたのコードを持ついくつかの問題があります。
- あなたのためのループxでしか1または2ことを見て、次のようになります(x < 3
それが結果を返すことはない意味 - の等価性をチェックするにはif文では、あなたが割り当て
ある======を必要はありません - あなたは、変数、ループのすべての反復を再宣言し、したがって、任意の格納されている情報
を失っている - forループ後の戻りが

を完了します

すべて一緒にそれを置く:

function doMath() { 
    var var1; 
    var var2; 
    var var2; 
    var num; 
    for(var x =1; x <= 3; x++){ //use x++ instead of x = x + 1 (easier to read) 
     if (x == 1) { //fix here 
      var num = prompt("Enter first number please"); 
      var1 = parseInt(num) 
     } else if (x == 2) { //and here 
      var num = prompt("Enter second number please"); 
      var2 = parseInt(num) 
     } else { 
      var num = prompt("Enter third number please"); 
      var3 = parseInt(num) 
     } 
    } 

    return Math.min(var1, var2, var3); 
} 
4

参照ライン:

if (x = 1) 

あなたがx == 1かどうかをチェックされていませんが、代わりに代入x = 1から作っています。後者は常に真です。つまり、条件が常に満たされ、そのためコードがユーザーにプロンプ​​トを表示し続けます。 他の条件も同様です。彼らはすべての課題です。お役に立てれば!

0

をあなたが関数を呼び出していないと、最終的な結果を出力していません。

実用的な解決策があります。それが役に立てば幸い!

function doMath() { 
 
    var var1; 
 
    var var2; 
 
    var num; 
 
for(var x =1; x <= 3; x++){ //use x++ instead of x = x + 1 (easier to read) 
 
    if (x == 1) { //fix here 
 
    var num = prompt("Enter first number please"); 
 
    var1 = parseInt(num) 
 
    } else if (x == 2) { //and here 
 
    var num = prompt("Enter second number please"); 
 
    var2 = parseInt(num) 
 
    } else { 
 
    var num = prompt("Enter third number please"); 
 
    var3 = parseInt(num) 
 

 
    } 
 
    } 
 

 
    return Math.min(var1, var2, var3); 
 
} 
 
document.write(doMath());

+0

これは実用的な解決策ではありません。なぜなら、実際には3つの値を追加するのではなく、forの内部で再宣言されているからです。 -ループ – JanR