如何正确使用if else和else if

How to properly use if else and else if

我正在使用 codecademy 课程,我正在学习如何使用随机数制作剪刀石头布游戏。它说我已经完成了 "good job",但每次我尝试正确地让每个人正确地显示它们各自的条件时,它都会搞砸。

请发表评论指出错误并在将来避免它的提示。

条件 - 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");  
    }
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。

每个人似乎都会犯的错误是您可以有 0.331,并且计算结果为 "Scissors"。比较合理的逻辑是:

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

我不想成为第十个回答者,但给出的所有答案都很糟糕。你懂的

else if (0.34 < computerChoice < 0.66) {

是错误的语法,对吧? OK,那么我们也来解决偏差问题: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";
}

这是双精度浮点所允许的最佳状态,对于大多数用途来说已经足够了。