-2

私は現在Javascriptで簡単なプログラムを書いています。プログラムが正しく動作しない理由がわかりません。ユーザーは数字を推測できるはずであり、プログラムはユーザーにそれが高いか低いかを推測する必要があるかどうかを伝えます。今のところ、最初のプロンプトすら表示されません。ご協力ありがとうございました。

<html>
  <head>
  </head>
  <body>
    <script>
      //Guessing Game
      function guessingGame() {
        var userNumber = prompt("Pick a number 1 through 1000!", "Type your number here");
        var computerNumber = Math.floor(Math.random() * 1000 + 1);
        var tries = 0;
        var done = false;
        while (done === false) {
          if (userNumber < computerNumber) {
            document.write("Your number was too low.");
            tries = tries + 1;
            userNumber = prompt("Please guess again", "Type your number here");
          } else if (userNumber > computerNumber) {
            document.write("Your number was too high.");
            tries = tries + 1;
            userNumber = prompt("Please guess again", "Type your number here");
          } else {
            document.write("Great Job!!! You guessed the number in " + tries + " tries!" );
            done = true;
          }
        }
      }
      guessingGame();
    </script>
  </body>
</html>
4

2 に答える 2

2
document.write("Great Job!!! You guessed the number in " + tries " tries!" );

この行には+afterがありませんtries。多くの場合、構文エラーにより JavaScript のブロック全体が破棄されるため、何も実行されません。

if (userNumber < computerNumber) {

また、エスケープ<されていない JavaScript コードは HTML とうまく混合できないため、使用しないでください。どちらかを書く

if (userNumber &lt; computerNumber) {

または、スクリプト全体を CDATA セクションに入れて、エスケープされていない山かっこが許可されるようにします。

<script>
// <![CDATA[

    /* code here, can use '<' freely */

// ]]>
</script>
于 2013-01-25T03:54:25.743 に答える
2

行の他の連結を忘れました+

document.write("Great Job!!! You guessed the number in " + tries " tries!" );

そのはず

document.write("Great Job!!! You guessed the number in " + tries + " tries!" );

jsFiddleの例を修正しました。

于 2013-01-25T03:54:34.993 に答える