Java数组元素删除方法始终抛出异常问题求助
问题分析与修复方案
问题根源
你的deleteElement方法逻辑存在错误:在循环的第一次迭代中,如果当前元素不等于目标元素,就直接抛出异常,完全没有遍历后续元素的机会。哪怕数组后面存在匹配元素,方法也会提前终止并抛出异常。
比如你调用方法时查找的是10,如果数组第一个输入的数字不是10,方法立刻就抛出Element not found异常,根本不会检查剩下的9个元素。
修复后的代码
public static void deleteElement(int[] array, int element) throws Exception { boolean found = false; for (int i = 0; i < array.length; i++) { if (array[i] == element) { array[i] = 0; found = true; break; // 找到第一个匹配元素后退出循环 } } // 遍历完所有元素后,确认未找到才抛出异常 if (!found) { throw new Exception("Element not found"); } }
修复逻辑说明
- 新增
found标记,用于记录是否找到目标元素 - 遍历数组时,找到匹配元素就置为0,将
found设为true,然后退出循环 - 循环结束后,若
found仍为false,说明整个数组都没有匹配元素,此时才抛出异常
这样就能保证:只有当所有元素都遍历完成且未找到匹配项时,才会抛出异常;找到第一个匹配元素时会正常修改并结束方法。
内容的提问来源于stack exchange,提问作者Raxabi
相关产品推荐
相关产品推荐

