我正在运行以下代码blower bellow它只打印'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')
switch
将您放入的值(rps
)与每个case
(将是true
或false
)进行比较。
由于该功能永远不匹配布尔值,因此您总是击中默认情况。
我在做什么错?
尝试使用switch
来真正不适合的东西。
使用if
和else
代替。
let rock = 2;
let scissors = 4;
let paper = 8;
let firstPlayerChoice = rock;
let secondPlayerChoice = paper;
switch (firstPlayerChoice / secondPlayerChoice) {
case 1:
console.log('there is a tie! pick again');
break;
case 0.5:
case 4:
console.log(`first player won!`);
break;
case 2:
case 0.25:
console.log(`second player won!`);
break;
default:
console.log('something went wrong!');
}
€hello!,
您误解了"开关"的使用,开关这样起作用:
一次评估开关表达式。
将表达式的值与每种情况的值进行比较。
如果有匹配,则执行了相关的代码块。
soruce:https://www.w3schools.com/js/js_switch.asp
就像Quentin所说的那样,使用"如果"而是