带返回值的方法体中用FOR循环,return报错的问题

带返回值的方法体中用FOR循环,return报错的问题

  public int addEmployee(Employee x) {
     if(this.em==null) {
      em=new Employee[200];
     }
     for(int i=0;i<3;i++) {
     return 1;
     }
    }

老师我不理解为什么报错,for循环里面已经有return,但是方法还是报错说无返回值

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

代码很多用法错误,首先Employee[200]是数组,所以addEmployee方法需要写入Employee[] em,其次赋值为了表示为此类的em,应该用this.em=new Employee[200],再有for循环的return表示结束循环,不是返回值的意思,所以return;即可,正确代码如下

public class job {

private Employee[] em;

public void addEmployee(Employee[] em) {

     if(this.em==null) {

      this.em=new Employee[200];

     }

     for(int i=0;i<3;i++) {

    System.out.println( em[i]);

     return;

     }

    }

}


  • 暖阳洋 提问者 #1
    额,可能我代码没写全的原因,表述不是很清楚,我问的是一个有返回值的方法体里面有FOR循环,然后for循环里面用了return,为什么还是会显示没有返回值
    2018-07-17 22:48:28
  • imoocLovers 回复 提问者 暖阳洋 #2
    编译器会检测到如果for循环中return没有执行到的情况,那么这个方法就没有返回值了,即便我们知道for循环中return肯定会执行到,但是为了代码的安全性,完整性,编译器会出现没有返回值的提示,只要你在for循环外面,再使用一次return,就不会报错了。祝学习愉快~
    2018-07-18 09:48:03
noblenooble 2018-07-17 21:25:14

return 不能写在循环体里 如果在条件体里 在代码块外部再声明一个return 来做默认返回

  • 提问者 暖阳洋 #1
    是的我也实验了几次,return可以写在循环体里面,但是他不能作为带返回值方法的返回值了,不晓得为什么
    2018-07-17 22:51:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师