为什么会报错,返回的类型就是MyHero啊 1C

图片说明

7个回答

这段代码的问题是,如果for循环中没有查到记录的话,代码没有返回值。修正下,在代码for循环外面return null;
即,如果循环结束查不到,就返回空对象。

return写到循环外面,可以用一个变量,在循环中,对变量赋值,最后返回这个变量

因为你代码有可能没有返回值。

count的大小是个变量,有可能循环一次都不执行,所以无法保证在编译时就能确定下来返回值类型

for循环中没有查到记录的话,代码没有返回值。修正如下
改:

 public MyHero find(int id){

    for(int i = 0;i < count; i++){
        if(heros[i].getId == id ){
            return heros[i];
        }
    }
    return null;
}

要在循环外面写返回值,,,

你定义了一个返回值,那么方法最后就必须返回一个myhero类型的值,for循环里,如果heros[i].getId == id,返回heros[i], 可是如果for循环执行完了,也没有heros[i].getId == id的值,你返回什么了? 所以需要在for循环外添加一个return null,这样不管怎样,你都有一个返回值了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐