加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 04:30:45 所属栏目:Java 来源:网络整理
导读:我的问题是这个方法“isLargest”在遇到“return true;”时不会结束.即使“else if”中的条件为真,它似乎只是跳过它并且总是返回“false”.我甚至打印了一个单词“test”来证明这一点.当我使用该方法时,它会显示“test”并返回false. 我尝试将此“返回false
我的问题是这个方法“isLargest”在遇到“return true;”时不会结束.即使“else if”中的条件为真,它似乎只是跳过它并且总是返回“false”.我甚至打印了一个单词“test”来证明这一点.当我使用该方法时,它会显示“test”并返回false.

我尝试将此“返回false”放在else或其他内容中,但是然后说“此方法必须返回布尔类型”并建议我添加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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读