Javascript - Рок, бумага, ножницы с выключателем? Если нет, каковы альтернативы? - PullRequest
0 голосов
/ 15 марта 2019

Я запускаю следующие коды ниже, он печатает только «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') 

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

¡Привет!,

Вы неправильно понимаете использование «switch», переключатель работает следующим образом:

Выражение переключателя вычисляется один раз.

Значение выражения сравнивается со значениями каждого случая.

При наличии совпадения выполняется соответствующий блок кода.

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

Как говорит Квентин, вместо этого используйте «если»

0 голосов
/ 15 марта 2019

switch сравнивает введенное вами значение (rps, которое является функцией) с каждым case (которое будет true или false).

Поскольку функция никогда не совпадает с логическим значением, вы всегда будете использовать регистр по умолчанию.

что я делаю не так?

Попытка использовать switch для чего-то, что на самом деле не подходит.

Вместо этого используйте if и else.

...