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

I need help "debugging" an If/Else if/Else statement's syntax

本文关键字:Else if 语句 语法 If 帮助 调试      更新时间:2023-09-26

我正在"Codecademy"上创建一个石头,纸,剪刀的游戏,所以我使用简单的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;
}
if (computerChoice < 0.33) {
  computerChoice = "rock";  
} else if (computerChoice <= 0.66){
  computerChoice = "paper";    
} else {
  computerChoice = "scissors";
} 

代码中存在以下问题。

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

您的语法需要一些修复。

首先,您不需要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'

五个问题

  1. console.log语句不需要大括号。
  2. 你需要在你的值、石头、纸和剪刀周围加上引号(或者事先将它们定义为变量)。
  3. 一个逻辑和在JavaScript中需要两个与号&&。(单与号是按位运算符。
  4. 你必须在逻辑和之后包括不等式的双方。你不能说& < 0.66因为JavaScript不知道你指的是什么,但需要写&& computerChoice < 0.66
  5. 一个数学问题是,你没有完全将0到1的区间正确地划分为三个相等的段(并且完全省略了.33和.34之间的部分)。

加一个优化

  • 虽然上面 4. 为真,但你甚至根本不需要逻辑&&运算,因为当你到达 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";
}