如何解决即使在每种情况下添加return语句后也会出错
为if和else的所有组合添加了return语句,仍然缺少return语句错误。下面是代码:
public int searchInsert(int[] nums,int target) {
for(int i=0;i<nums.length;i++){
if(nums[i] <= target){
if(nums[i] == target)
return i;
else
return i+1;
}
else
return i;
}
}
解决方法
两个return语句都在if构造内。 for循环之外的主块中没有返回。
,从语法上讲,这可能会起作用,但是在编译时,编译器期望for循环之外的return语句。即使它是“返回null”,也很好。
,您似乎很困惑。您粘贴的代码没有任何作用。具体来说,由于通过“ for”的每条路径都返回,因此此for循环将分析nums [0],这就是它要做的一切:如果nums [0]等于或大于目标,则返回0,并且如果不是,则返回1。
javac无法编译此代码,因为您的代码没有说明如果nums为空应该返回什么。您添加了不应该的退货。大概您想要的是摆脱最后的else return i;
部分,然后在最底部的return nums.length;
处添加(这是问题的答案:如果nums数组是完全为空,还是所有元素都高于目标?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。