簡體   English   中英

如果其他情況下如何正確使用

[英]How to properly use if else and else if

我正在使用代碼學院課程,並且正在學習如何根據隨機數字制作剪刀石頭布游戲。 它說我做得“不錯”,但是每次我嘗試正確地使每個人正確顯示各自的條件時,都會搞砸。

請留下評論以指出錯誤,並提供以后避免它的提示。

條件-0至.33 =岩石-.34至.66 =紙張-.67至1 =剪刀

JS代碼

var userChoice = prompt("Rock, Paper, or Scissors?");

var computerChoice = Math.random();

console.log(computerChoice);

if  (computerChoice <= 0.33) {
    console.log("Rock");
}

else if (0.34 < computerChoice < 0.66) {
   console.log("Paper");   
}

else {
    console.log("Scissors");   
}

也許問題出在這一行:

else if (0.34 < computerChoice < 0.66) {

嘗試這個:

else if (0.35 < computerChoice && computerChoice < 0.67) {

最好閱讀一本編程書籍,或者閱讀一些有關循環的在線教程,無論如何,使用下面的代碼可以解決您的問題

    var userChoice = prompt("Rock, Paper, or Scissors?");

    var computerChoice = Math.random();

    console.log(computerChoice);

    if  (computerChoice <= 0.33) 
    {
        console.log("Rock");
    }

else if(computerChoice>=0.34&&computerChoice<=0.66)
     {
       console.log("Paper"); 
     }
else if(computerChoice>=0.67&&computerChoice<=1)
     {
       console.log("Scissors");      
     }

   else
    {
      console.log("Invalid input");  
    }

每個人似乎都會犯的錯誤是您可以擁有0.331,並且評估結果為“剪刀”。 邏輯更合理,如下所示:

var result = (computerChoice >= 0.67 ? "Scissors" : (computerChoice >= 0.34 ? "Paper" : "Rock"));
console.log(result);

我不想成為第十個回答者,但是給出的所有答案都是不好的。 你明白

else if (0.34 < computerChoice < 0.66) {

是錯誤的語法,對嗎? 好的,讓我們也解決偏差問題:0.33小於三分之一,並且0.33和0.34之間的所有數字均默認為剪刀。 如果要平均分配,最簡單的方法是使用提前退出功能:

function computerChoice() {
    var v = Math.random();

    if (v < (1.0 / 3.0)) return "rock";
    if (v < (2.0 / 3.0)) return "paper";
    return "scissors";
}

這與雙精度浮點數所允許的效果一樣好,對於大多數用途而言,這已經足夠了。

if(computerChoice>=0&&computerChoice<=0.33)
{
  console.log("Rock");
}
else if(computerChoice>=0.34&&computerChoice<=0.66)
{
  console.log("Paper"); 
}
else if(computerChoice>=0.67&&computerChoice<=1)
{
  console.log("Scissors");      
}

嗨,我假設您驗證的隨機數范圍是0到1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM