if语句不起作用

if statements not working

本文关键字:不起作用 语句 if      更新时间:2023-09-26

我是js的新手,我刚刚写了下面基于石头、纸、剪刀游戏的基本函数。由于某些原因,比较函数的结果总是显示为"draw"而不是其他结果。我在这里做错了什么?

var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
    computerChoice = "rock";
} else if (computerChoice <= 0.67) {
    computerChoice = "paper";
} else {
    computerChoice = "scissors";
}
choice1 = userChoice;
choice2 = computerChoice;
var compare = function (choice1, choice2) {
if (choice1 == choice2) {
        return "draw!";
}
if (choice1 == "rock") {
    if (choice2 == "scissors") {
        return "rock wins!";
    } else {
        return "paper wins!";
    }
}
if (choice1 == "paper") {
    if (choice2 == "scissors") {
        return "scissors wins!";
    } else {
        return "paper wins!";
    }
}
    if (choice1 == "scissors") {
        if (choice2 == "rock") {
            return "rock wins!";
        } else {
            return "scissors wins!";
        }
    }
};
compare();

谢谢,我们

您调用的比较没有参数:

compare();

因此,choice1choice2都等于undefined,您的游戏将始终以平局结束。你应该试着这样调用你的比较函数:

compare(userChoice, computerChoice);

如果定义一个函数,参数列表将定义函数范围内给定变量的名称。这不是函数本身应该可用的变量的命名约定。

您已经用两个参数定义了函数:

var compare = function (choice1, choice2) 

但是,您已使用0调用了它。

尝试指定选项:

compare("rock", "paper");

你不能只通过在没有参数的情况下键入func_name()来打开函数,这就像"干镜头"。阅读关于声明的函数

var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
  computerChoice = "rock";
} else if (computerChoice <= 0.67) {
  computerChoice = "paper";
} else {
  computerChoice = "scissors";
}
choice1 = userChoice;
choice2 = computerChoice;
function compare (choice1, choice2) {
  if (choice1 == choice2) {
    return "draw!";
  };
  if (choice1 == "rock") {
    if (choice2 == "scissors") {
      return "rock wins!";
    } else {
      return "paper wins!";
    }
  }
  if (choice1 == "paper") {
    if (choice2 == "scissors") {
      return "scissors wins!";
    } else {
      return "paper wins!";
    }
  }
  if (choice1 == "scissors") {
    if (choice2 == "rock") {
      return "rock wins!";
    } else {
      return "scissors wins!";
    }
  }
};
compare(choice1, choice2);