2 qq 22606333 qq_22606333 于 2016.03.13 19:13 提问

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

图片说明

7个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.13 19:48

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

bdmh
bdmh   Ds   Rxr 2016.03.13 20:02

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

qq_31807519
qq_31807519   2016.03.13 20:18

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

f445239051
f445239051   2016.03.13 20:56

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

qq_20039385
qq_20039385   2016.03.13 22: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   Ds   Rxr 2016.03.14 11:32

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

ligang7560
ligang7560   2016.03.14 13:59

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
mybatis返回Integer
mybatis返回int会报错,改成Integer封装类型可以解决,具体参考我的博客
会 JS 了不起啊!
:)
升级为iOS9后,默认请求类型为https,如何使用http进行请求会报错
原因  iOS9引入了新特性App Transport Security (ATS) 新特性要求App内访问的网络必须使用HTTPS协议。 但是现在公司的项目使用的是HTTP协议,使用私有加密方式保证数据安全。现在也不能马上改成HTTPS协议传输。   解决方案 方案一:让服务器修改为TLS1.2   方案二:在plist中设置使用http请求 在I
关于PreparedStatement插入Date类型值会报错的问题
java中的PreparedStatement类型的setDate() 方法要求 java.sql.Date,但是你编程的类中的某个数据域的类型为Date,所以使用jdbc插入的时候,要求java.sql.Date的构造函数不能为空 例如今天做的mypetstore中的 pStatement.setDate(3, new Date(order.getOrderDat
DELPHI做的界面
输入不错的类型的值会报错,
趣图:会 JS 了不起啊!
(点击上方公众号快速关注,不错过趣图)「会 JS 了不起啊!」↓↓↓关注「程序员的那些事」每天看 IT 趣图↓↓↓
为什么返回值是ostream&
为什么返回值是ostream&   近来看到一个细节问题: 为什么这么写 ostream& operator 而不写成 ostream operator ostream&这个返回值类型用定义成别名的形式吗?? 在网上找到了答案如下: 如果写成这样 ostream operator 则: Point a, b; cout 错误,只能写为: cou
String类型的toString()返回的是什么
观察下面代码:String s1 = " hello"; String s2 = s1.substring(2,3); String s3 = s1.toString(); String s4 = new StringBuffer(s1).toString(); String s5 = " hello"; System.out.println(s1 == s3); System.out.printl
求助贴:把int型换成long就会报错为什么
做一个求阶乘和的问题,把int型换成long就会报错为什么 public class A1{  //求阶乘的和  public static void main(String[] args){   System.out.println(h(30));  }  public static long  h(int n){   long sum=0;int result=1;//改成lon
Java 新手 IDEA 2017 踩坑填坑史
新手在Mac 下安装了IntelliJ IDEA 2017,在编译HelloWorld时,提示出错,无效的标记 -release。 原因是自己下载的IDEA和JDK不匹配,重新下载了最新的IDEA后解决。继续编译后出现的问题,无法加载这个类,就是helloworld这个类,解决:打开Preference-》Build-》Compiler-》选择target bytecode version 我这里