我正在学习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>
答案 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
})()