-1

ウェブサイトのプロンプトを使用して簡単なアンケートを作成していますが、問題が発生しています。

このスクリプトで2つのエラーを受け取りました。最初に、「質問は定義されていません」、

第二に、私の最初のプロンプトの行の「引数リストの後に)がありません」何かアイデアはありますか?

<script>
var a = Math.floor((Math.random()*10)+1);
var b = Math.floor((Math.random()*10)+1);
var c = Math.floor((Math.random()*10)+1);

var wrong = 0;

function question()
{   
    for(x=1; x>10; x++)
    {
        prompt("Does" b"+"c " = ");
        if(prompt.input == b + c)
        {
            question();
        }else{
            wrong++;
        }

        if(x==10)
        {
            alert("well you were wrong " + wrong" times");
        }
    }
}
</script>
4

5 に答える 5

2

+あなたはへの議論にすべてが欠けています

prompt("Does" b"+"c " = ");

+文字列を連結するには、を使用する必要があります。

prompt("Does " + b + "+" + c + " = ");

同じこと+が欠けています:

alert("well you were wrong " + wrong" times");

使用する:

alert("well you were wrong " + wrong + " times");

questionまた、あなたはそれ自体の中から呼んでいます。これによって構文エラーが発生することはありませんが、あなたの場合はほとんど望ましくありません。


また、prompt.input動作しません。それは常に未定義です。プロンプト呼び出しの戻り値を使用します。

var response = prompt( ... );
if(response == b+c){
  ...

また、確率変数を初期化するのは1回だけです。おそらく、各ループ内に新しいペアが必要です(再帰がそのためのものでない限り)。注目してくれてありがとう@Asad。

于 2012-11-26T10:13:09.690 に答える
1

いくつかの場所で連結演算子をスキップしているようです。正しいバージョンは次のようになります。

prompt("Does " + b + "+" + c + " = ");

もう一度、ここに:

alert("well you were wrong " + wrong + " times");

さらに:

  1. ループの開始時に乱数を再度ランダム化する必要があります
  2. question再帰は必要ありません(すでにループを使用しています)
  3. ユーザーが間違っていた回数のアラートは、ループの外で発生する必要があります

修正されたバージョンは次のとおりです。

var a = Math.floor((Math.random()*10)+1);
var b = Math.floor((Math.random()*10)+1);
var c = Math.floor((Math.random()*10)+1);

var wrong = 0;

function question()
{   
    for(x=1; x>10; x++)
    {
        b = Math.floor((Math.random()*10)+1);
        c = Math.floor((Math.random()*10)+1);
        prompt("Does " + b + "+" + c + " = ");
        if(prompt.input != b + c)
            wrong++;        
    }

    alert("well you were wrong " + wrong + " times");
}
于 2012-11-26T10:14:16.990 に答える
0
var f1 = alert("well you were wrong " + wrong + " times");

alert値を返しません。

文字列の連結がありません:

"Does" b"+"c " = "
"Does"+ b + "+" + c + " = "

(すべての文字列を確認することをお勧めします)

また、ループを含む再帰を使用すると、無限ループが生成されます:(少し簡略化されています)

function question(){

    for(x=1; x>10; x++){
        question();
    }
}

を呼び出すquestion();たびに、10回電話をかけていますquestion();

于 2012-11-26T10:10:57.467 に答える
0

question is not defined関数questionが実際にブラウザによって読み取られる前に呼び出されていることを意味します。

main JSコードが、window.readyイベントがトリガーされた後にのみ実行されていることを確認してください。

window.onready = function(){
    //Here your starting code goes
}
于 2012-11-26T10:12:44.973 に答える
0

まず、文字列の連結にエラーがあります。のようにする必要があります

prompt("Does" +b+c+" = ");
alert("well you were wrong " + wrong+" times");

question();第二に、ループを作成する値のアップグレードなしで関数を繰り返し使用しています

于 2012-11-26T10:15:28.130 に答える