即使在每种情况下添加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数组是完全为空,还是所有元素都高于目标?

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...