method not returning value when encountering “return” in an “if”
我的问题是,此方法"islargest"在满足"return true;"时不会结束。即使"else if"中的条件为真,它似乎只是跳过它,并始终返回"false"。我甚至打印了一个单词"测试"来证明这一点。当我使用这个方法时,它会说"test",并返回false。
我试着将这个"返回假"放在else或其他if中,但它表示"这个方法必须返回布尔类型",并建议我添加返回语句。我该怎么处理?
1 2 3 4 5 6 7 8 9 10 | 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; |
当您进行递归调用时,需要返回递归调用的值。
1 2 3 4 5 6 7 8 9 10 | 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; |