qq_22606333
qq_22606333
采纳率0%
2016-03-13 11:13 阅读 1.3k

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

1

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

7条回答 默认 最新

  • wojiushiwo945you 毕小宝 2016-03-13 11:48

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

    点赞 1 评论 复制链接分享
  • bdmh bdmh 2016-03-13 12:02

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

    点赞 评论 复制链接分享
  • qq_31807519 洛烨 2016-03-13 12:18

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

    点赞 评论 复制链接分享
  • f445239051 佳君德怀恩帮子 2016-03-13 12:56

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

    点赞 评论 复制链接分享
  • qq_20039385 qq_20039385 2016-03-13 14:12

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

     public MyHero find(int id){
    
        for(int i = 0;i < count; i++){
            if(heros[i].getId == id ){
                return heros[i];
            }
        }
        return null;
    }
    
    点赞 评论 复制链接分享
  • Royal_lr Royal_lr 2016-03-14 03:32

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

    点赞 评论 复制链接分享
  • ligang7560 ligang7560 2016-03-14 05:59

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

    点赞 评论 复制链接分享

相关推荐