如何返回for循环元素?
private List<String> list = new ArrayList<String>();
//we only neeed one good element of the list
String find(){
for (int i=0; i<list.size(); i++){
if (list.get(i).isGood()) {
return list.get(i);
}
}
return list.get(i); //doesn't work obviously, but how to make it work?
}
它没有编译,因为没有return语句。我想返回list.get(i)。
答案 0 :(得分:3)
在break
调用之后调用return
是不必要的,因为该方法在return
语句之后退出。因此break
语句没有被执行的机会,这就是为什么这段代码不能编译。
此外,如果循环中没有返回任何值,则循环后需要return
或throw
语句,例如:
String find(){
for (int i=0; i<list.size(); i++){
if (list.get(i).isGood()) {
return list.get(i);
}
}
return null;
}
答案 1 :(得分:0)
您不必break
,因为您已拨打return
。它从调用return
的行退出方法。所以你不必考虑打破循环。
详细了解return。
答案 2 :(得分:0)
当达到return
指令时,代码立即从当前函数退出,因此不接受任何后续行,因为永远不会到达。
答案 3 :(得分:0)
String find() {
return list.stream()
.filter(Clazz::isGood)
.findFirst()
.get();
}
调用无法访问的代码语句。
任何代码早午餐都应该有return语句。
使用Stream API:
{{1}}