混淆&&;和| |在java中

混淆&&;和| |在java中,java,Java,上面的代码是修订作业的开始,但我遇到了一些我不理解的东西。用户被要求输入他们的性别,如“男性”或“女性”,只有当输入满足其中一个输入时,程序才能继续。这是通过将输入与最终的字符串进行比较来实现的 我不明白的是,为什么它只在while语句中使用&&。我希望它需要| |,因为如果输入匹配两个性别字符串中的任何一个,我们希望它继续。我理解&&应该只在两个参数都为true时才允许代码继续 TL;博士 &&是一个逻辑和运算符 |是逻辑的或运算符 使用以下命令: while(!gender.eq

上面的代码是修订作业的开始,但我遇到了一些我不理解的东西。用户被要求输入他们的性别,如“男性”或“女性”,只有当输入满足其中一个输入时,程序才能继续。这是通过将输入与最终的字符串进行比较来实现的

我不明白的是,为什么它只在while语句中使用&&。我希望它需要| |,因为如果输入匹配两个性别字符串中的任何一个,我们希望它继续。我理解&&应该只在两个参数都为true时才允许代码继续

TL;博士

  • &&
    是一个逻辑
    运算符

  • |
    是逻辑的
    运算符

使用以下命令:

    while(!gender.equals(MALE) && !gender.equals(FEMALE));  //This works
    while(!gender.equals(MALE) || !gender.equals(FEMALE));  //This does not work
    while(gender.equals(MALE)  ||  gender.equals(FEMALE));  //This does not work
可翻译为:

while(!gender.equals(MALE) && !gender.equals(FEMALE))
(注意附加的括号和括号前面的
位置)

上述两种情况都意味着
性别既不是
男性
也不是
女性

while(!gender.equals(MALE) || !gender.equals(FEMALE))
您的其他代码:

while(!(gender.equals(MALE) || gender.equals(FEMALE)))
上述意思是-
性别
不是
男性
性别
不是
女性

while(!gender.equals(MALE) || !gender.equals(FEMALE))
同样,在英语中,上述意思是-
性别
是男性
性别
是女性

:“如果不是女性或男性,请再试一次”
while(!gender.equals(MALE) || !gender.equals(FEMALE))
然后在Java
do{…}while(!(女性|男性))

还有!(A | | B)等于!A&&!B

&&
是Java的逻辑AND运算符
|
是Java的逻辑OR运算符

例如:

while(gender.equals(MALE)  ||  gender.equals(FEMALE));
另外,
是Java的逻辑
运算符。它用于对布尔表达式求反:

boolean a = true;
boolean b = false;
boolean c = a && b;   // c is false
boolean d = a || c;   // d is true
还值得注意的是,
x&&y
将产生与
相同的逻辑值!(!x | |!y)


类似地,
x | | y
可以重写为
!(!x&&!y)

do while
循环中,如果输入的性别既不是
男性也不是
女性,则需要提示用户重新输入其性别

while(!gender.equals(MALE) || !gender.equals(FEMALE))
因此while条件是,如果两个
性别.相等(男性)
性别.相等(女性)
返回false,则您将重新提示用户,即循环将迭代

这意味着如果
gender.equals(MALE)
not
gender.equals(MALE)
not都是真的,那么你的循环应该迭代

因此,


而(!(gender.equals(MALE))和(!(gender.equals(FEMALE))

注意括号的变化和“!”的删除(不必要的澄清?:p)我实际上在一个非常复杂的SQL查询中使用了De Morgan规则。。。信不信由你。啊,德摩根的规则,那些我从未想到过的规则!非常感谢所有answered@Oded. 懒散的胖醉汉整天坐在沙发上。@gdoron-谢谢你。。。建设性的。。。评论…我猜你是以这个为例,但如果不是,那么:它可能是。或者使用单选按钮(下拉选择),因为它是一个有两个选项的表单,对吗?…最好输入
的“定义”以及