Java数组判断函数报错求助:arrayDoesNotContain断言错误排查
数组包含判断逻辑错误排查
需求说明:当数组
arr不包含目标值target时返回true,否则返回false。
用户实现的Java代码:
public boolean arrayDoesNotContain(int[] arr, int target){ for (int element : arr) { if (element != target) { return true; } } return false; }
问题分析
你的代码逻辑完全错误,核心问题在于提前返回的条件搞反了:
- 循环中只要遇到第一个不等于
target的元素就直接返回true,这和需求完全相悖。比如数组[1,2,3]、目标值2的场景,第一个元素是1不等于2,代码直接返回true,但实际上数组包含2,应该返回false。 - 只有当数组**所有元素都等于
target**时,代码才会返回false,这完全不符合需求定义。
正确实现
正确逻辑是:遍历数组时,只要找到等于target的元素,就立即返回false(因为需求是包含目标值则返回false);遍历完整个数组都没找到目标值,再返回true。
public boolean arrayDoesNotContain(int[] arr, int target){ for (int element : arr) { if (element == target) { return false; } } return true; }
内容的提问来源于stack exchange,提问作者Cosimo Bressi
相关产品推荐
相关产品推荐

