在“if”中遇到“return”时不返回值的方法

时间:2015-11-09 12:20:21

标签: java methods

我的问题是这个方法“isLargest”在遇到“return true;”时不会结束。即使“else if”中的条件为真,它似乎只是跳过它并且总是返回“false”。我甚至打印了一个单词“test”来证明这一点。当我使用该方法时,它会显示“test”并返回false。

我尝试将此“return false”放在else或其他内容中,但是然后说“此方法必须返回布尔类型”并建议我添加return语句。我该如何处理?

class MyViewSet(
        mixins.CreateModelMixin,
        mixins.ListModelMixin,
        GenericViewSet):
    serializer_class = ....
    queryset = ....

1 个答案:

答案 0 :(得分:7)

当你有一个递归调用时,你需要返回递归调用的值。

public boolean isLargest(Node tmp, Node parent){
if(tmp.value > parent.value){
    parent = parent.right;
    return tmp.isLargest(tmp, parent);
}
else if(parent.value == tmp.value){
    System.out.println("test");
    return true;
}       
return false;