给定2个整数和条件negative
:
true
如果一个低于零和一大于零和negative
是false
。true
如果两者都低于零,negative
是true
。false
否则返回。测试:
posNeg(1, -1, false) expected: true
posNeg(-1, 1, false) expected: true
posNeg(-4, -5, true) expected: true
posNeg(-4, 5, true) expected: false
我对这个问题的解决方案是:
public boolean posNeg(int a, int b, boolean negative) {
return ((((a>0) && (b<0)) || ((a<0) && (b>0))) || (((a<0) && (b<0)) &&(negative)));
}
但是这种情况是错误的
posNeg(-4, 5, true) expected: false | actual: true
我认为我的解决方案是正确的,经过再次检查。
请让我知道我错了。为什么此解决方案不正确?
彼此之间有或关联的三种情况。由于其中一种情况是“ a为负且b为正”,因此它将返回true。
您需要确保前两种情况仅在negative为false时返回true。
例如代替
((a>0) && (b<0))
写
(a > 0 && b < 0 && !negative)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句