返回for循环外部的for循环元素

时间:2016-09-15 08:07:50

标签: java for-loop

如何返回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)。

4 个答案:

答案 0 :(得分:3)

break调用之后调用return是不必要的,因为该方法在return语句之后退出。因此break语句没有被执行的机会,这就是为什么这段代码不能编译。

此外,如果循环中没有返回任何值,则循环后需要returnthrow语句,例如:

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}}
相关问题