我需要帮助“调试”If / Else if / Else语句的语法

时间:2015-01-15 03:47:41

标签: javascript if-statement syntax-error var multiple-choice

我正在“Codecademy”上创建一个Rock,Paper,剪刀游戏,因此我使用简单的JavaScript。这个简单的代码有四个必需品

  • 如果computerChoice介于0和0.33之间,则使computerChoice等于“rock”。
  • 如果computerChoice介于0.34和0.66之间,则使computerChoice等于“paper”。
  • 如果computerChoice介于0.67和1之间,则使computerChoice等于“剪刀”。
  • 需要成为If / Else If / Else声明

所以基本上,我需要根据函数“computerChoice”的值来改变函数“computerChoice”的值。

    var userChoice = prompt("Do you choose rock, paper or scissors?");

var computerChoice = Math.random(); {
    console.log(computerChoice);
}

if (computerChoice >= 0 & <= 0.33) {
    computerChoice = rock;
}

else if (computerChoice >= 0.34 & < 0.66) {
    computerChoice = paper;
}
else {
    computerChoice = scissors;
}

4 个答案:

答案 0 :(得分:1)

您的代码存在以下问题。

1)应该有&&而不是&

2)此条件

(computerChoice >= 0 & <= 0.33)

应该是

(computerChoice >= 0 && computerChoice <= 0.33)

3) rockscissorspaper应该是字符串,只需将它们用引号括起来。

4)在下面的行中

var computerChoice = Math.random(); {
    console.log(computerChoice);
}

不需要{ }它应该写成

var computerChoice = Math.random(); 
console.log(computerChoice);

将所有内容合并在一起

var userChoice = prompt("Do you choose rock, paper or scissors?");

var computerChoice = Math.random();
console.log(computerChoice);


if (computerChoice >= 0 && computerChoice <= 0.33) {
    computerChoice = 'rock';
} else if (computerChoice >= 0.34 && computerChoice < 0.66) {
    computerChoice = 'paper';
} else {
    computerChoice = 'scissors';
}

答案 1 :(得分:1)

if (computerChoice < 0.33) {
  computerChoice = "rock";  
} else if (computerChoice <= 0.66){
  computerChoice = "paper";    
} else {
  computerChoice = "scissors";
} 

答案 2 :(得分:0)

五个问题

  1. 您不需要围绕console.log声明支持。
  2. 您需要围绕您的价值观,岩石,纸张和剪刀报价(或者事先将它们定义为变量)。
  3. 逻辑和JavaScript需要两个和号&&。 (单个&符号是按位运算符。)
  4. 你必须在逻辑和之后包括不等式的两面。你不能说& < 0.66因为JavaScript不知道你指的是什么,但需要写&& computerChoice < 0.66
  5. 一个数学问题是你并没有将0到1之间的区间正确地划分为三个相等的段(并完全省略了.33和.34之间的部分)。
  6. 加一个优化

    • 虽然上面的情况是正确的,但您根本不需要逻辑&&操作,因为您已经知道到达else if语句中的代码,第一个if条件不成立,并且不需要再次检查。

    您没有定义名为rock的变量,因此您可以定义一个变量,或者只使用字符串"rock""paper""scissors"也一样。

    建议的修订

    var userChoice = prompt("Do you choose rock, paper or scissors?");
    
    var computerChoice = Math.random();
    console.log(computerChoice);
    
    
    if (computerChoice < 1/3) {
        computerChoice = "rock";
    }
    
    else if (computerChoice < 2/3) {
        computerChoice = "paper";
    }
    
    else {
        computerChoice = "scissors";
    }
    

答案 3 :(得分:0)

您的语法需要一些修复。

首先,你不需要在log()陈述周围使用那些花括号。

另一方面,您需要在每个if语句的第二部分中测试变量:

if (computerChoice >= 0 && computerChoice <= 0.33) {
    computerChoice = rock;
} else if (computerChoice >= 0.34 && computerChoice < 0.66) {
    computerChoice = paper;
} else {
    computerChoice = scissors;
}

注意在每个布尔表达式的后半部分中比较computerChoice

此外,您尚未定义变量rockpaperscissors。相反,您可以尝试分别使用字符串'rock''paper''scissors'