String 将字符串与IF语句中的逻辑运算符进行比较

String 将字符串与IF语句中的逻辑运算符进行比较,string,comparison,String,Comparison,我试图找出如何比较if语句中的字符串。我的大部分代码都可以忽略,但都是针对上下文的。我试图在我的简单的石头、布、剪刀游戏中添加一条信息,当有人在石头、布或剪刀之外输入一根弦时。有人能告诉我我在有星号的部分做错了什么吗 var userChoice = prompt("Do you choose rock, paper or scissors?"); var computerChoice = Math.random(); if (computerChoice < 0.34) {

我试图找出如何比较if语句中的字符串。我的大部分代码都可以忽略,但都是针对上下文的。我试图在我的简单的石头、布、剪刀游戏中添加一条信息,当有人在石头、布或剪刀之外输入一根弦时。有人能告诉我我在有星号的部分做错了什么吗

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";
} console.log("Computer: " + computerChoice);

var compare = function (choice1, choice2) {
    if (choice1 === choice2) {
        return "The result is a tie!";
     }
**else if (choice1 !== "rock" || "paper" || "scissors") {
    return "Your only options are rock, paper, or scissors you friggin plebian!";
}**
else if (choice1 === "rock") {
    if (choice2 === "scissors") {
        return "Rock wins!";
    }
    else {
        return "Paper wins!";
    }
}
else if (choice1 === "paper") {
    if (choice2 === "rock") {
        return "Paper wins!";
    }
    else {
        return "Scissors wins!";
    }
}
else if (choice1 === "scissors") {
    if (choice2 === "paper") {
        return "Scissors wins!";
    }
    else {
        return "Rock wins!";
    }
}
else if(choice1!=“rock”| | |“paper”| |“剪刀”)
应该是:

else if(choice1!=“rock”| choice1!=“paper”| choice1!=“剪刀”)
else if(choice1!=“rock”| | paper”|剪刀”)
应该是:

else if(choice1!=“石头”| choice1!=“布”| choice1!=“剪刀”)

布尔表达式并不像我们在英语中所说的那样,即“选择不是石头、布或剪刀”。在某些语言中,将“choice”作为布尔值进行求值在语法上是完全有效的,因此请注意记住愚蠢地重复参数。否则,这些都是需要一段时间才能发现的错误类型。;)

布尔表达式并不像我们在英语中所说的那样,即“选择不是石头、布或剪刀”。在某些语言中,将“choice”作为布尔值进行求值在语法上是完全有效的,因此请注意记住愚蠢地重复参数。否则,这些都是需要一段时间才能发现的错误类型。;)

试试看:

else if (choice1 !== "rock" || choice1 !== "paper" || choice1 !== "scissors")
你的陈述不符合“选择不等于石头、布或剪刀”

编译器将其读取为:

选择1不等于岩石

剪刀

逻辑运算符后面的每个部分都必须求值为布尔值,因此只有当字符串不为rock时,它才与字符串匹配,后两个部分将不匹配任何内容。

请尝试:

else if (choice1 !== "rock" || choice1 !== "paper" || choice1 !== "scissors")
你的陈述不符合“选择不等于石头、布或剪刀”

编译器将其读取为:

选择1不等于岩石

剪刀


逻辑运算符后面的每个部分都必须求值为布尔值,因此只有当字符串不是rock时,它才与字符串匹配,后两个不会匹配任何内容。

读了几遍之后,我才意识到你不是在说我愚蠢,而是在说语法。我需要一些睡眠,这样我就可以继续学习,而不是因为我给自己制造的问题而头痛。感谢所有指出这是一个愚蠢错误的人,但这只是学习的又一步。@RanmaSaotome哈!我很清楚那种感觉。这发生在我们最好的人身上。有时候,花10分钟做一些完全不同的事情是有帮助的。我读了几本书才意识到你不是在说我愚蠢,而是在说语法。我需要一些睡眠,这样我就可以继续学习,而不是因为我给自己制造的问题而头痛。感谢所有指出这是一个愚蠢错误的人,但这只是学习的又一步。@RanmaSaotome哈!我很清楚那种感觉。这发生在我们最好的人身上。有时,10分钟内做一些完全不同的事情会有帮助。
else if (choice1 !== "rock" || choice1 !== "paper" || choice1 !== "scissors")