逻辑OR的问题

RKh*_*RKh 2 javascript

这段代码有什么问题:

if (Gender != "M" || Gender != "F")
{
    alert("Please enter gender." + Gender);
    document.getElementById("gender").focus();
    return false;                               
}   
Run Code Online (Sandbox Code Playgroud)

Kai*_*Kai 13

你可能意味着and而不是or:

if (Gender != "M" && Gender != "F")
Run Code Online (Sandbox Code Playgroud)

  • 凯是对的.您的测试将始终为真,因为如果用户选择Gender = M,则Gender!="F"部分为true. (2认同)

Ama*_*osh 6

阅读它:

if (gender is not male OR gender is not female)
{
  //
}
Run Code Online (Sandbox Code Playgroud)

让我们说性别是男性:因为性别不是女性,所以if评估为true.

现在,如果性别是女性:因为它不是男性,所以if再次评估为true.

你是想说性别既不是男性也不是女性,对吧?正如其他人建议的那样,你必须在这里使用AND.

if (gender is not male AND gender is not female)

//which is
if (Gender != "M" && Gender != "F")
Run Code Online (Sandbox Code Playgroud)


Mig*_*ura 5

条件永远是真实的,因为如果Gender == 'M'那时它将是!= 'F',反之亦然.