返回true然后从for循环中断

时间:2015-12-01 13:04:21

标签: java

我是java的新手。 我一直试图做一些没有成功的事情。 基本上我想要做的是创建一个返回true或false的方法。该方法获取一些参数,检查某个数组是否已满,如果不是,则将参数推送到非空的第一个单元格,返回true并且不继续检查数组的其余部分。 如果数组已满,则返回false。 这是代码:

public boolean add( param1, param2, param3 ){
 for( int i = 0; i < array.length; i++ ){
   if ( array[i] == null ){
     array[i] =  new SomeObject( param1, param2, param3 ); 
     return true;
     break;
     }
  }
  return false;
}

但是我得到错误 - “无法恢复的声明”为“break;”。 有什么帮助吗?

提前致谢!

3 个答案:

答案 0 :(得分:20)

由于你有一个return语句,因此你不需要从循环中break,因为return语句结束了方法的执行。只需删除break语句。

答案 1 :(得分:2)

由于有些人坚持使用具有单一回报点的函数,因此可以按照以下方式重新表述函数,与原始问题的表观期望相匹配。

public boolean add( param1, param2, param3 ){
    boolean result = false;
    for( int i = 0; i < array.length; i++ ){
        if ( array[i] == null ){
            array[i] =  new SomeObject( param1, param2, param3 ); 
            result = true;
            break;
        }
    }
    return result;
}

答案 2 :(得分:0)

是的,因为当控件遇到一个return语句时,它就会退出一个方法,转换或循环等,所以在return语句下面写的任何代码都只是“无法访问”。因此,除非需要,否则始终建议将返回值放在块的最后一个块(方法)中,并且建议不要在单个块中的 return 语句之后写入任何代码,以免获得错误。