我对编程很陌生,所以这个问题看起来很傻。下面提到的方法有一个作为int数组的返回类型。当我们不抛出任何未经检查的异常时,它会抛出一个我理解的错误。但是为什么包含一个未检查的异常会删除那个错误呢?它仍然没有任何返回语句,不是吗?
public static int[] twoSum(int[] nums, int target) {
for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[j] == target - nums[i]) {
return new int[] { i, j };
}
}
}
//throw new IllegalArgumentException("No two sum solution");
}
在某些情况下,您的程序永远不会到达内部的return语句。例如。如果nums
长度为0,或者nums[j]==target-nums[i]
从不为true。对于这些情况,方法需要返回一些东西,或者它可以抛出一个异常。对于您的用例什么是正确的行为是您自己的决定。如果没有为这种情况定义任何内容,而您的IDE允许您通过它,那么您就会破坏代码。如果抛出一个异常,而不是什么都不做,您的IDE会说它很好,因为您的代码在技术层面上是正确的。
如果数组中的前4个元素之一是9,则该方法应该返回true。数组长度可能小于4。在我的方法中,由于某种原因,我不断得到“缺少返回语句错误”。
我一直得到一个丢失的返回语句错误,但我不知道在哪里。每次跟随代码,我都感觉到至少有一个if语句提供了return语句。 代码:
我不断地得到缺少的return语句并且在解析时到达文件的结尾,然而我已经有了return语句并且我的代码正确地关闭了括号。请帮忙,谢谢
我真的弄不明白为什么我的代码会导致这个错误,一切看起来都是正确的,以为它总是出现,因为它缺少一个return语句 我试着寻找解决方案,我看到“if”后面的“while”是一个解决方案,但由于我需要多个数字,我不能使用while,而必须使用“what if”。