Javascript - 摇滚,纸,剪刀与开关声明?如果不是什么替代品?

问题描述 投票:0回答:2

我正在运行以下代码,它只打印'Draw!'其他情况不起作用,我做错了什么?

const rps = (p1, p2) => {
var s = 'scissors';
var p = 'paper';
var r = 'rock';
var ans = '';

switch (rps) {
case (p1 == p && p2 == r):case (p1 == s && p2 == p): case (p1 == r && p2 == s):
ans = ('Player 1 won!');
break;

case (p1 == s && p2 == r): case (p1 == r && p2 == p): case (p1 == p && p2 == s):
ans =  ('Player 2 won!');
break;

default: ans =  ('Draw!');
break;
}
return ans
}


 rps('paper','scissors') 
javascript if-statement switch-statement
2个回答
0
投票

switch比较你输入的值(rps是一个函数)和每个case(将是truefalse)。

由于函数永远不会匹配布尔值,因此您总是会遇到默认情况。

我究竟做错了什么?

试图使用switch来做一些不太适合的事情。

请改用ifelse


-1
投票

你好!,

你误解了“开关”的使用,开关的工作原理如下:

切换表达式计算一次。

将表达式的值与每种情况的值进行比较。

如果匹配,则执行相关的代码块。

Soruce:https://www.w3schools.com/js/js_switch.asp

像Quentin所说,用“if”代替

© www.soinside.com 2019 - 2024. All rights reserved.