混淆&&;和| |在java中
上面的代码是修订作业的开始,但我遇到了一些我不理解的东西。用户被要求输入他们的性别,如“男性”或“女性”,只有当输入满足其中一个输入时,程序才能继续。这是通过将输入与最终的字符串进行比较来实现的 我不明白的是,为什么它只在while语句中使用&&。我希望它需要| |,因为如果输入匹配两个性别字符串中的任何一个,我们希望它继续。我理解&&应该只在两个参数都为true时才允许代码继续 TL;博士混淆&&;和| |在java中,java,Java,上面的代码是修订作业的开始,但我遇到了一些我不理解的东西。用户被要求输入他们的性别,如“男性”或“女性”,只有当输入满足其中一个输入时,程序才能继续。这是通过将输入与最终的字符串进行比较来实现的 我不明白的是,为什么它只在while语句中使用&&。我希望它需要| |,因为如果输入匹配两个性别字符串中的任何一个,我们希望它继续。我理解&&应该只在两个参数都为true时才允许代码继续 TL;博士 &&是一个逻辑和运算符 |是逻辑的或运算符 使用以下命令: while(!gender.eq
是一个逻辑&&
和
运算符
是逻辑的|
运算符或
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))
然后在Javado{…}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-谢谢你。。。建设性的。。。评论…我猜你是以这个为例,但如果不是,那么:它可能是。或者使用单选按钮(下拉选择),因为它是一个有两个选项的表单,对吗?…最好输入的“定义”代码>以及