为什么使用这种递归方法:
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;
}
}
}
我不能因为它不是空的
2条答案
按热度按时间6rqinv9w1#
这个
palindroma
函数应该返回boolean
通过设计递归调用,因此它不能void
返回类型。也,
else
部分if
在下列情况下可以删除语句:return
语句用于简化代码:iqjalb3h2#
通常,当我们创建一个函数时,我们会尝试获取一个返回值(返回0),以查看函数是否正确终止。有些函数是在编译器或编程语言中预定义的(例如:return、void、int、char)
假设我们用c语言编写了一个简单的程序,并带有声明。例如
void main(){
}//此处不需要返回值。因为您已将函数声明为null。
//如我们所知,这并不意味着程序不能正确运行或终止,但我们不能在函数末尾写入返回值(因为函数已经声明为null/void)
假设我们编写了一个程序,在完成一个函数时不需要返回任何值。它通常返回为空
所以void在编译器中被预定义为null,并且void函数不接受任何参数。
请参考维基百科article:-
https://en.m.wikipedia.org/wiki/void_type