use*_*737 20 java boolean-logic
我有两个变量,可以是true或false.我通过在数据库上查询某些产品ID的存在与否来获得这些.
现在我需要设置另一个变量,它将是true或false.当两个变量都为真或两者都为假时,它将是真值.这将是假的一个是真的而另一个是假的.
目前我使用if语句来处理它
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;
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?
DXM*_*DXM 118
我可能会遗漏一些非常基本的东西,但我会试一试:
result = ( v1 == v2 );
Run Code Online (Sandbox Code Playgroud)
cod*_*ict 13
您可以使用逻辑XOR运算符和逻辑NOT运算符:
result = !(v1^v2);
Run Code Online (Sandbox Code Playgroud)
在给定真值表的情况下,使用卡诺图(Karnaugh Maps)通常会很好地解决此类问题,从而使重现真值所需的逻辑最小化
您的真值表如下所示:
v1 v2 f(v1,v2) ttt tff 英尺英尺 英尺
实际上,正如其他人指出的那样,给定真值表,对逻辑的基本熟悉应该马上产生函数!异或
但是,如果您使用真值表并将其绘制为卡诺地图,则它看起来像:
v2 英尺 --------- vf | t | f | 1吨| f | t | ---------
函数看起来像:!v1!v2 || v1v2如果您再次查看2个变量karnaugh映射示例,可以将其简化为!异或
诚然,最好通过熟悉,熟悉和记忆,用普通的逻辑运算最好地处理2个变量卡诺图。但是当扩展超过2个变量时,卡诺地图非常有启发性-您应该研究它们。
归档时间: |
|
查看次数: |
13652 次 |
最近记录: |