Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么不是';如果这不起作用吗? 公共布尔搜索(int值){ 搜索(根,值); } 专用布尔搜索(节点,int值){ 如果(node==null){return false;} 如果(node.getValue()==value){return true;} else if(node.getValue()>value){System.out.println(“搜索左”+node.getValue()+'>'+value);搜索(node.left,value);} else如果(node.getValue()value){ System.out.println(“左搜索”+node.getValue()+'>'+value); 返回搜索(node.left,value); }否则{ System.out.println(“右搜索”+node.getValue()+”_Java - Fatal编程技术网

Java 为什么不是';如果这不起作用吗? 公共布尔搜索(int值){ 搜索(根,值); } 专用布尔搜索(节点,int值){ 如果(node==null){return false;} 如果(node.getValue()==value){return true;} else if(node.getValue()>value){System.out.println(“搜索左”+node.getValue()+'>'+value);搜索(node.left,value);} else如果(node.getValue()value){ System.out.println(“左搜索”+node.getValue()+'>'+value); 返回搜索(node.left,value); }否则{ System.out.println(“右搜索”+node.getValue()+”

Java 为什么不是';如果这不起作用吗? 公共布尔搜索(int值){ 搜索(根,值); } 专用布尔搜索(节点,int值){ 如果(node==null){return false;} 如果(node.getValue()==value){return true;} else if(node.getValue()>value){System.out.println(“搜索左”+node.getValue()+'>'+value);搜索(node.left,value);} else如果(node.getValue()value){ System.out.println(“左搜索”+node.getValue()+'>'+value); 返回搜索(node.left,value); }否则{ System.out.println(“右搜索”+node.getValue()+”,java,Java,如果或公共布尔搜索(int-value),则没有返回语句{ 搜索(根,值); //在这里添加一个返回 } 专用布尔搜索(节点,int值){ if(node==null){ 返回false; }else if(node.getValue()==value){ 返回true; }else if(node.getValue()>value){ System.out.println(“左搜索”+node.getValue()+'>'+value); 返回搜索(node.left,value); }否则{

如果
公共布尔搜索(int-value),则没有
返回
语句{
搜索(根,值);
//在这里添加一个返回
}
专用布尔搜索(节点,int值){
if(node==null){
返回false;
}else if(node.getValue()==value){
返回true;
}else if(node.getValue()>value){
System.out.println(“左搜索”+node.getValue()+'>'+value);
返回搜索(node.left,value);
}否则{
System.out.println(“右搜索”+node.getValue()+”如果
node.getValue()
大于或小于
value
则打印消息,但不返回任何内容

在这些情况下,您是否打算返回搜索结果

public boolean search(int value) {
    search(root,value);

    // add a return here
}

private boolean search(Node node, int value) {
    if (node == null) {
        return false;
    } else if (node.getValue() == value) {
        return true;
    } else if (node.getValue() > value) {
        System.out.println("searching left" + node.getValue() + '>' + value);
        return search(node.left, value);
    } else {
        System.out.println("searching right" + node.getValue() + '<' + value);
        return search(node.right, value);
    }
}
私有布尔搜索(节点,int值){
if(node==null){
返回false;
}else if(node.getValue()==value){
返回true;
}如果(node.getValue()>value){
System.out.println(“左搜索”+node.getValue()+'>'+value);
返回搜索(node.left,value);
}如果(node.getValue()System.out.println(“右搜索”+node.getValue()+”最重要的是,在最后2个else if语句中没有return语句,但即使在这两个语句中都放一个return语句也不能完全解决错误

当具有返回值的方法时,必须始终在if语句外部或else语句内部有一个返回值(在else-if语句内部不起作用)

基本上,编译器无法知道if语句是否为真,需要保证其中一条语句为真并返回一个值

即使遵循以下模式,也是如此:

private boolean search(Node node, int value) {
    if (node == null) {
        return false;
    } else if(node.getValue() == value){
        return true;
    } else if (node.getValue() > value) { 
        System.out.println("searching left" + node.getValue() + '>' + value); 
        return search(node.left,value);
    } else  if (node.getValue() < value)  { 
        System.out.println("searching right" + node.getValue() + '<' + value); 
        return search(node.right,value);
    }
}
if(a==b)
返回true;
如果(a>b)
返回false;
if(a

作为一个人,我们可以理解这些语句中至少有一条是真的,但编译器不会。如果你知道其中至少有一条语句是真的,那么你可以简单地在末尾放一个
返回;
语句,知道它永远不会被调用。

如果所有
如果
语句都是假的,会发生什么?第一条语句都不是
search
或者第二个分支中的所有分支都有
return
它们不能全部为false。值必须大于、小于、等于或为null。@name未找到编译器不知道这一点。为什么你说这里有一个返回类型?显然,在私有函数的两种情况下,你没有返回任何内容,我也没有n公共功能。当你说“eclipse正在讲述”,这将有助于向我们显示消息,消息通常包含的信息比它们所获得的信息要多。此外,您需要在分支机构之外返回某些信息,即使您从未到达分支机构。在这种情况下,您将到达分支机构,因为大于和小于的案例不会返回任何信息,它们将运行到私人函数。您是否从第一个函数返回?
private boolean search(Node node, int value) {
    if (node == null) {
        return false;
    } else if(node.getValue() == value){
        return true;
    } else if (node.getValue() > value) { 
        System.out.println("searching left" + node.getValue() + '>' + value); 
        return search(node.left,value);
    } else  if (node.getValue() < value)  { 
        System.out.println("searching right" + node.getValue() + '<' + value); 
        return search(node.right,value);
    }
}
if (a == b)
    return true;
if (a > b)
    return false;
if (a < b)
    return true;