Ste*_*ike 2 java boolean-logic if-statement boolean-expression
if-condition我的代码中有这个:
if (a||a&&!b){
// do some stuff
}
Run Code Online (Sandbox Code Playgroud)
从我的那些初始值junit test:
boolean a=true, b = true;
Run Code Online (Sandbox Code Playgroud)
我后来认识到这个陈述可以简化为:
if (a&&b)
Run Code Online (Sandbox Code Playgroud)
变绿了: Assert.assertTrue(a||a&&!b == a&&b);
我现在的问题.有没有方法,工具,功能,图书馆等来检查boolean expression是否有简化?
谢谢你的帮助?
只需查看真值表(我已添加括号)
a || (a && (!b))
a|b|result
----------
T|T|T
T|F|T
F|T|F
F|F|F
Run Code Online (Sandbox Code Playgroud)
我们可以看到,该公式不依赖于b,并且可以简化为仅
a
Run Code Online (Sandbox Code Playgroud)
最后
if (a) {
// do some stuff
}
Run Code Online (Sandbox Code Playgroud)
对于具有许多变量的公式,当真值表太长而无法进行人工分析时,您可以使用卡诺图,如Eomm所提出的那样.
| 归档时间: |
|
| 查看次数: |
3018 次 |
| 最近记录: |