Ⅰ java 能否用递归处理循环嵌套
这种方法看似很麻烦,但是比用递归调用要好一点,从系统资源的方面说,他要比递归调用自身的函数要占用更少的空间,递归调用的时候会占用相当的内存来保护现场,之后还要恢复现场,递归函数不是很好的方法!
for循环看上去会有一点点的乱,但写起来还不算麻烦,适当的代码缩进能让程序变得友好,也能很清晰的看出程序运行的结构。
在这里我结合你的想法和递归函数的空间开销,选择了一个还算可以的方法,代码如下:
public class Text {
int function(int max, int sum)
{
for(int i=0;i<=max;i++)
{
sum=sum+i;
System.out.println(sum);
}
return sum;
}
/**
* @param args
*/
public static void main(String[] args) {
int sum=0;
int max=9;
int count=4;
Text demo=new Text();
while(count>=1)
{
sum=demo.function(max, sum);
count=count-1;
}
}
}
具体到你想要的程序中就另当别论了,可以做适当的更改!
因个人能力有限,只能贡献一点微薄的力量,希望对你有用!
如果有什么其他的问题,不妨直接发到信箱,方便能看到你的问题,能和你及时的探讨,共同学习,先谢了!
信箱:[email protected]
Ⅱ java递归方法里有for循环,for循环里又调用这个递归方法是否可以
可以 你自己注意循环 和递归结束条件 不要进入死循环
Ⅲ java的循环能不能直接转换成递归
看是什么情况但是需要一个结束递归的条件
比如:
int i=0;
int a(int i){
if(i==8){ 终结条件
return i;
}
i++;
return a(i);
}
调用方法 a(i);
这就是一个简单的递归,但是连续调用方法是很消耗的,所以递归一般不建议使用
一、函数调用需要使用内存中的栈来保存函数的数据以及访问链和控制链,如果数据是必须的,那么访问链和控制链等所占的内存则是额外的。
二、使用递归,会进行很深层次的调用函数,所以需要调用很多函数,需要建立许多的访问链和控制链,占用大量内存,而且调用时传递参数,申请空间,返回时恢复现场,都有时间的花销,所以递归效率低。
三、内存的栈当作一个容器,每次递归,函数都往容器中添加容量,当添到一定层次,容器满了,就溢出了,如果用递归,如果忘记了递归截至条件,你就可能进入了无穷递归,无穷递归必然会溢出,所以,不提倡递归
Ⅳ Java递归实现n层循环
publicclassMyTest{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODO自动生成的方法存根
double[]A={3.75,3.1};
double[]B={3.75,3.95};
double[]C={2.33,3.8,15};
mul(0,A,B,C);
//mul(0,0,0,A,B,C);
}
privatestaticvoidmul(inti,double[]A,double[]B,double[]C)
{
if(i<A.length)
{
for(intj=0;j<B.length;j++)
{
for(intk=0;k<C.length;k++)
{
System.out.println(A[i]+"*"+B[j]+"*"+C[k]);
}
}
i++;
mul(i,A,B,C);
}