我有一个用例,其中我必须检查一个条件是否是另一个条件的子集。意思是,满足条件2的结果集将是满足条件1的结果集的子集。
我正在检查,而intellij确实在代码检查期间弄清楚了
if (x < 7 && x > 1) {
return true;
} else if (x > 3 && x <6) {
return false;
}
这里在代码检查过程中确实突出了第二个条件的结果始终为假。
那么,它是如何实现的?
答案 0 :(得分:1)
此范围:
(x > 3 && x <6)
是以下内容的子范围:
(x < 7 && x > 1)
所以如果条件(x < 7 && x > 1)
true
,那么将不会达到此条件(x > 3 && x <6)
false
,则此条件(x > 3 && x <6)
也是false
(x > 3 && x <6)
,则始终为 false 。实现逻辑的正确方法应该是首先检查子范围:
if (x > 3 && x <6) {
return false;
} else if (x > 1 && x < 7) {
return true;
} else {
return ....;
}