2016-04-16 69 views
0

我目前正在學習Java腳本,並想知道我的代碼有什麼問題。我想生成一個隨機數達到50的隨機數,然後讓用戶猜測是隨機數的5倍。生成一個最多爲50的隨機數。讓用戶猜測最多5倍隨機數使用的JavaScript

在此先感謝。

<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

爲什麼'loop' ...? – Rayon

+0

我想讓用戶猜測最多5次。所以我認爲一個循環會是最好的。 – dancemc15

+0

刪除'loop',使用計數器... – Rayon

回答

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 

})() 
+0

一個有用的選擇。謝謝 – dancemc15

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>

+0

好的,謝謝你。非常感謝幫助。 – dancemc15