我是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;”。 有什么帮助吗?
提前致谢!
答案 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 语句之后写入任何代码,以免获得错误。