我正在学习用 Java 编写代码,并且正在做一些在线练习,其中没有过多解释答案,所以我只是好奇为什么我的代码似乎与解决方案相似时不正确。
练习说——
“给定 2 个 int 值,如果一个为负数,一个为正数,则返回 true。除非参数“negative”为 true,否则仅当两者均为负数时才返回 true。”
public boolean posNeg(int a, int b, boolean negative) {
if (negative && (a < 0 && b < 0)) {
return true;
}
return (a < 0 && b > 0 || a > 0 && b < 0);
} // This is my code that yields unwanted results
public boolean posNeg(int a, int b, boolean negative) {
if (negative) {
return (a < 0 && b < 0);
}
else {
return ((a < 0 && b > 0) || (a > 0 && b < 0));
}
} // This is the solution code
运行时 posNeg(-4, 5, true); 事实证明它是真的,即使它应该是假的。每当一个 int 为负数而另一个为正数且负数为真时,它应该为假,但结果为真。
慕容708150
相关分类