Java 找出两个变量是真是假的更好方法
我有两个变量,可以是真的,也可以是假的。我通过查询数据库中是否存在某些产品ID来获取这些信息 现在我需要设置另一个变量,它将是true或false。当两个变量都为真或都为假时,它将为真值。一个值为真,另一个值为假 目前我使用if语句来处理它Java 找出两个变量是真是假的更好方法,java,boolean-logic,Java,Boolean Logic,我有两个变量,可以是真的,也可以是假的。我通过查询数据库中是否存在某些产品ID来获取这些信息 现在我需要设置另一个变量,它将是true或false。当两个变量都为真或都为假时,它将为真值。一个值为真,另一个值为假 目前我使用if语句来处理它 if ( v1 == true && v2 == true ) result = true; else if ( v1==false && v2 == false ) result = true; else if ( v1
if ( v1 == true && v2 == true )
result = true;
else if ( v1==false && v2 == false )
result = true;
else if ( v1 == true && v2 == false )
result = false;
else if ( v1==false && v2 == true )
result = false;
有更好的方法吗?您可以将逻辑异或运算符和逻辑非运算符用作:
result = !(v1^v2);
我可能遗漏了一些非常基本的东西,但我会试一试:
result = ( v1 == v2 );
使用XOR运算符(^):
为什么不把两者比较一下呢
if(v1 == v2) result = true;
简单的方法是,如果两个变量相等,那么它应该为真,如果任何一个为假,那么它就是假。 看看这个
if(v1 == v2)
return true;
else
return false;
这类问题,在给定真值表的情况下,尽可能减少再现真值所需的逻辑,通常得到很好的处理 这里的真值表如下所示: v1 v2 f(v1, v2) t t t t f f f t f f f t v2 f t --------- v f| t | f | 1 t| f | t | --------- v1v2f(v1,v2) t t t t f f f t f f f t 事实上,正如其他人所指出的,考虑到真值表,对逻辑的基本熟悉应该会立即产生函数 但是,如果将真值表绘制为卡诺图,它看起来像: v1 v2 f(v1, v2) t t t t f f f t f f f t v2 f t --------- v f| t | f | 1 t| f | t | --------- v2 f t --------- v f | t | f| 1 t | f | t| --------- 函数看起来像:!v1!v2 | | v1v2如果你再看一次,可以看到它简化为 不可否认,2变量卡诺图可能最好用普通的逻辑运算来处理,即熟悉和记忆。但是当扩展到2个变量之外时,卡诺图非常有启发性——你应该研究它们
!(a^b)
要比a==b更清楚,那么你一定还在睡觉。实际上,这些括号甚至是可选的,因为赋值操作符在所有这些语言中的优先级最低,如java、C++,C.What与java相关的答案,与布尔代数有关,接收到许多的赞成票(参见)。D+1:lol,当我第一次阅读这个问题时,我认为它可能是一个XOR问题,但这使它变得简单明了。@Benoit对于编译器来说是可选的,但是我们程序员经常忘记编译器规则@贝诺特,你刚才是不是和我们在一起P