javascript - if 语句不起作用

标签 javascript if-statement return

我是js新手,只是根据石头剪刀布游戏写了下面的基本功能。由于某种原因,比较函数的结果总是显示为 “绘制”而不是其他结果。我在这里做错了什么?

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);

如果定义函数,则参数列表定义函数范围内给定变量的名称。它不是应该在函数本身中可用的变量的命名约定。

关于javascript - if 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17272863/

相关文章:

xcode - 在 Swift 中返回一个未包装的可选?

Paypal 退订返回网址

用 return 结束函数时加载 JSON 时出现 Python 错误

javascript - 根据问题返回不同的消息

javascript - 如何通过 Safari 扩展程序识别网页中的鼠标单击?

javascript - 谷歌浏览器在alert()函数上的不可预测的行为

c++ - 我在用 srand 在 C++ 中构建非重复随机数组时做错了什么?

php - 在 if else 语句中定义一个值并稍后重用它(php 新手)

javascript - 开发小书签时需要考虑哪些设计和安全注意事项?

linux - 创建目录结构的 Bash 脚本