如何正确使用if else和else if

时间:2015-01-29 06:11:06

标签: javascript function random console.log

我正在使用codecademy课程,而且我正在学习如何通过随机数字制作石头剪刀游戏。它说我做了一份好工作"但每当我试图让每个人正确地表现出他们各自的条件时,它就会变得混乱。

请留下评论,指出错误以及将来避免错误的提示。

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

5 个答案:

答案 0 :(得分:1)

问题就在于这一行:

else if (0.34 < computerChoice < 0.66) {

试试这个:

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

答案 1 :(得分:0)

最好阅读一本编程书,或阅读一些关于循环的在线教程 无论如何使用下面的代码它将解决你的问题

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

答案 2 :(得分:0)

每个人似乎犯的错误是你可以拥有0.331并且评估为“剪刀”。逻辑更合理如下:

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

答案 3 :(得分:0)

我讨厌成为第十个回答者,但所有给出的答案都很糟糕。你理解

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";
}

这与双精度浮点允许的一样好,这对于大多数用途来说已经足够好了。

答案 4 :(得分:-1)

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

HI,我假设您验证的随机数范围为0到1。