Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-带开关语句的石头、布、剪刀?如果没有,还有什么替代方案?_Javascript_If Statement_Switch Statement - Fatal编程技术网

Javascript-带开关语句的石头、布、剪刀?如果没有,还有什么替代方案?

Javascript-带开关语句的石头、布、剪刀?如果没有,还有什么替代方案?,javascript,if-statement,switch-statement,Javascript,If Statement,Switch Statement,我正在运行下面的代码,它只打印“Draw!”其他案例不起作用,我做错了什么 constrps=(p1,p2)=>{ var s=‘剪刀’; var p=‘纸张’; var r=‘岩石’; var ans=“”; 交换机(rps){ 案例(p1==p&&p2==r):案例(p1==s&&p2==p):案例(p1==r&&p2==s): ans=(“玩家1赢了!”); 打破 案例(p1==s&&p2==r):案例(p1==r&&p2==p):案例(p1==p&&p2==s): ans=(“玩家2赢

我正在运行下面的代码,它只打印“Draw!”其他案例不起作用,我做错了什么

constrps=(p1,p2)=>{
var s=‘剪刀’;
var p=‘纸张’;
var r=‘岩石’;
var ans=“”;
交换机(rps){
案例(p1==p&&p2==r):案例(p1==s&&p2==p):案例(p1==r&&p2==s):
ans=(“玩家1赢了!”);
打破
案例(p1==s&&p2==r):案例(p1==r&&p2==p):案例(p1==p&&p2==s):
ans=(“玩家2赢了!”);
打破
默认值:ans=('Draw!');
打破
}
返回ans
}

rps(“纸”、“剪刀”)
开关
将您输入的值(
rps
这是一个函数)与每个
案例
(将是
true
false
)进行比较

由于该函数从不匹配布尔值,因此最终总是使用默认情况

我做错了什么

尝试使用
开关
来处理它不太适合的事情

使用
if
else

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

开关表达式计算一次

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

如果存在匹配项,则执行关联的代码块

索罗斯:


正如昆廷所说,使用“if”代替您要查找的
if
/
else
,而不是
开关
——它不是为布尔条件求值而设计的