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

迈克尔·萨克萨(Michael Xaxaxa)

我的问题是,这种方法“ isLargest”在遇到“ return true;”时不会结束。即使“ else if”中的条件为true,也似乎只是跳过它而总是返回“ false”。我什至印了“测试”一词来证明这一点。当我使用该方法时,它说“ test”并返回false。

我试图将这个“ return false”放在一个else或另一个if中,但是然后说“此方法必须返回布尔类型”,并建议我添加return语句。我该如何处理?

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

进行递归调用时,您需要返回递归调用的值。

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;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章