生成一个最多50个随机数。让用户猜测该随机数是使用JavaScript的5倍

时间:2016-04-16 19:46:49

标签: javascript

我正在学习Java Script,想知道我的代码有什么问题。我想生成一个最多50个随机数,然后让用户猜测随机数的5倍。

提前致谢。

<body onload="myFunction()">

<script>

var random = Math.floor(math.random()*51);
var user = prompt("Guess my number");
var guess ="";

function myFunction() {
for (var i=0; i < 6; i++) {


if (user != random) {
        alert('try again');
        guess+=1;
    else if (user == random) {
        alert('You win!');
        }
 return alert('Sorry, you lose!');
     };
   }

</script>


</body>
</html>

2 个答案:

答案 0 :(得分:1)

参考此示例:

var random = Math.floor(Math.random() * 51); //Get random number
//----------------------^^ Typo here
var guess = 0;

function myFunction() { //Invoke this function on page load
  if (guess < 6) { //test the counter every time 
    var user = prompt("Guess my number");
    if (user != random) {
      alert('try again');
      guess += 1; //Increase the counter
      myFunction(); //Invoke the function again
    } else if (user == random) {
      alert('You win!');
    }
  } else {
    alert('Sorry, you lose!');
  }
};
<body onload="myFunction()">
</body>

答案 1 :(得分:0)

将代码封装到自调用函数中是一种很好的做法

(function() {

//your code here

})()

它有助于防止变量乱丢全局范围并使代码立即运行。而且您现在不需要使用onload="myFunction()"。 这是带for循环的版本:

(function () {

    var random = Math.floor(Math.random() * 51);

    function myFunction() {
        for (var i = 0; i < 6; i++) {
            if (i != 5) {
                var user = prompt("Guess my number");
                if (user != random) {
                    alert('try again');
                } else if (user == random) {
                    alert('You win!');

                }
            } else {
                alert('Sorry, you lose!');
            }
        }
    }

    myFunction(); //invoking function

})()