Java函数posNeg实现校验:正负整数判断逻辑与需求不符问题
代码逻辑与需求匹配性分析
明确需求
- 当参数
negative为false时:只有两个int数值一正一负时返回true - 当参数
negative为true时:只有两个int数值全为负数时返回true
现有代码的问题
先看原实现代码:
public boolean posNeg(int a, int b, boolean negative) { if (negative == true) { if (a<0 && b<0) { return true; } else if ( (a<0 && b>0) || (a>0 &&b<0) ) { return true; } else { return false; } } else { return false; } }
问题点非常明显:
- 当
negative为true时,代码错误地把一正一负的情况也返回true,完全不符合“仅全负才返回true”的要求 - 当
negative为false时,代码直接固定返回false,完全忽略了“一正一负返回true”的核心需求
修正后的正确实现
public boolean posNeg(int a, int b, boolean negative) { if (negative) { // 仅全负时返回true return a < 0 && b < 0; } else { // 仅一正一负时返回true return (a < 0 && b > 0) || (a > 0 && b < 0); } }
内容的提问来源于stack exchange,提问作者SBh
相关产品推荐
相关产品推荐

