我需要帮助“调试”If/Else if/Else 语句的语法
I need help "debugging" an If/Else if/Else statement's syntax
我正在"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)rock
,scissors
和paper
应该是字符串,只需将它们括在引号中即可。
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
。
此外,您尚未定义变量 rock
、 paper
和 scissors
。相反,您可以尝试分别使用字符串 'rock'
、 'paper'
和 'scissors'
。
五个问题
console.log
语句不需要大括号。- 你需要在你的值、石头、纸和剪刀周围加上引号(或者事先将它们定义为变量)。
- 一个逻辑和在JavaScript中需要两个与号
&&
。(单与号是按位运算符。 - 你必须在逻辑和之后包括不等式的双方。你不能说
& < 0.66
因为JavaScript不知道你指的是什么,但需要写&& computerChoice < 0.66
。 - 一个数学问题是,你没有完全将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";
}
相关文章:
- Jquery else if statement
- Javascript skips else if?
- JqueryUI,多个ID和else if 语句在可丢弃,我如何让它们工作
- JQuery Else if statement?
- 以这种方式使用if/else-if/else是一种很好的做法
- switch(true)作为else-if的替代
- else-if子句未按预期工作
- 使用if-else-if-true检查(验证)单选按钮如果未检查则无警报必须检查警报
- Javascript else-if语句错误
- `else if `从不执行;只执行前面的“if”
- 正在创建嵌套的if+else-if语句,但函数返回为未定义
- else-if条件在js渲染模板中
- 我的if和else-if逻辑中的问题以及两个函数的冲突
- 带有if语句的循环的Javascript未到达else-if语句
- 使用 If else if else 语句得到错误
- if-else-if JavaScript 返回 true 并退出,无论输入如何
- Jquery else if is not working
- 如何在 Angular JS 中执行开关或 else/if 语句
- 我可以在 html 文档中使用 if/else if 命令吗?
- 我需要帮助“调试”If/Else if/Else 语句的语法