JavaScript-岩石,纸,带开关语句的剪刀?如果不是什么,有什么选择



我正在运行以下代码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(将是truefalse)进行比较。

由于该功能永远不匹配布尔值,因此您总是击中默认情况。

我在做什么错?

尝试使用switch来真正不适合的东西。

使用ifelse代替。

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所说的那样,使用"如果"而是

相关内容

  • 没有找到相关文章

最新更新