return递归方法

vzgqcmou  于 2021-07-11  发布在  Java
关注(0)|答案(2)|浏览(275)

为什么使用这种递归方法:

public static int contaCaratteri1(String qq, char bb, int ripp, int poss) {
    if (poss > qq.length() - 1) {
        return ripp;
    } else {
        if (bb == qq.charAt(poss)) {
            return contaCaratteri1(qq, bb, ripp + 1, poss + 1);
        } else {
            return contaCaratteri1(qq, bb, ripp, poss + 1);
        }
    }
}

我可以回来,即使 return contaCaratteri1(qq,bb,ripp+1,poss+1); 不是int,但在这个例子中:

public static void palindroma(String k, int i, int j) {
    if (i > j && j < i) {
        System.out.print("La stringa e' palindroma");
        return;
    } else {
        if (k.charAt(i) == k.charAt(j)) {
            return palindroma(k, i + 1, j - 1);
        } else {
            System.out.print("La stringa NON e' palindroma");
            return;
        }
    }
}

我不能因为它不是空的

6rqinv9w

6rqinv9w1#

这个 palindroma 函数应该返回 boolean 通过设计递归调用,因此它不能 void 返回类型。
也, else 部分 if 在下列情况下可以删除语句: return 语句用于简化代码:

public static boolean palindroma(String k, int i, int j) {
    if (null == k) {  // check for null
        return false;
    }
    if (i > j && j < i) {
        System.out.print("La stringa e' palindroma");
        return true;
    }
    if (k.charAt(i) == k.charAt(j)) {
        return palindroma(k, i + 1, j - 1);
    }
    System.out.print("La stringa NON e' palindroma");
    return false;
}
iqjalb3h

iqjalb3h2#

通常,当我们创建一个函数时,我们会尝试获取一个返回值(返回0),以查看函数是否正确终止。有些函数是在编译器或编程语言中预定义的(例如:return、void、int、char)
假设我们用c语言编写了一个简单的程序,并带有声明。例如
void main(){
}//此处不需要返回值。因为您已将函数声明为null。
//如我们所知,这并不意味着程序不能正确运行或终止,但我们不能在函数末尾写入返回值(因为函数已经声明为null/void)
假设我们编写了一个程序,在完成一个函数时不需要返回任何值。它通常返回为空
所以void在编译器中被预定义为null,并且void函数不接受任何参数。
请参考维基百科article:-
https://en.m.wikipedia.org/wiki/void_type

相关问题