当前位置: 技术问答>java相关
java能否实现递归调用,入门级问题!!欢迎大家讨论!
来源: 互联网 发布时间:2015-06-09
本文导语: 我的程序非常简单,实现的功能是计算4的乘方。如下所示 //Search.java class DiGui { int i; void DiGui(int i) { this.i = i; } int fact() { if(i == 1) return 1; else return (i*fact(i-1)); } } public class Search { void Searc...
我的程序非常简单,实现的功能是计算4的乘方。如下所示
//Search.java
class DiGui
{
int i;
void DiGui(int i)
{
this.i = i;
}
int fact()
{
if(i == 1)
return 1;
else
return (i*fact(i-1));
}
}
public class Search
{
void Search()
{
}
public static void main(String args[])
{
DiGui digui = new DiGui(4);
//digui.i = 4;
System.out.println(digui.fact());
}
}
编译错误提示有两处:
1.fact()in DiGui cannot be applied to (int)
return(i*fact(i-1));
2.cannot resolve symbol
sonstructor DiGui (int)
DiGui digui = new DiGui(4);
这两个错误什么意思?java能不能实现递归调用?请大虾指点。
怎么改正?
//Search.java
class DiGui
{
int i;
void DiGui(int i)
{
this.i = i;
}
int fact()
{
if(i == 1)
return 1;
else
return (i*fact(i-1));
}
}
public class Search
{
void Search()
{
}
public static void main(String args[])
{
DiGui digui = new DiGui(4);
//digui.i = 4;
System.out.println(digui.fact());
}
}
编译错误提示有两处:
1.fact()in DiGui cannot be applied to (int)
return(i*fact(i-1));
2.cannot resolve symbol
sonstructor DiGui (int)
DiGui digui = new DiGui(4);
这两个错误什么意思?java能不能实现递归调用?请大虾指点。
怎么改正?
|
1、fact(i-1) 你必须定义int fact(int), 可你的是int fact()。
2、void DiGui(int i)应为public DiGui(int i),你必须把它显露出来。
2、void DiGui(int i)应为public DiGui(int i),你必须把它显露出来。
|
do you want to get 4! ? if so,
class DiGui
{
int fact(int i)
{
if(i
class DiGui
{
int fact(int i)
{
if(i