java语言中:循环一定可以改成递归吗?

来源:百度知道 编辑:UC知道 时间:2024/05/25 03:28:53
有这样的循环语句,想改成递归的形式。
for(int x=0;x<10;x++)
{
for(int y=0;y<10;y++)
{
for(int z=0;z<10;z++)
{
System.out.println(""+x+y+z);
}
}
}

改好了

public class Test
{
public static void main(String[] args)
{
print("",3);
}
public static void print(String sum, int depth)
{
for(int i=0;i<10;i++)
{
sum+=i;
if(depth==1)
System.out.println(sum);
else
print(sum,depth-1);
sum=sum.substring(0,sum.length()-1);
}
}
}

另外:
递归和迭代(比如你说的循环,使用控制流语句来完成功能)是可以完全转化的.
递归的优势在于在处理一些问题的时候,递归的思想比较简洁.递归的劣势在于,与迭代相比,递归由于频繁调用函数和展开函数栈,有额外的时间和空间的消耗.
所以说,有时候递归有助于程序员用简单的思想书写代码,但是对用户来说,用递归写成的代码必然会有耗时长(小程序体现不出来)和占用内存多的劣势.
所以说,程序员要做的应该是尽可能的把递归问题转化为迭代问题.
而把迭代转化为递归,一般是不需要的.

一般来说,对于步骤不可预测的操作,不能使用递归,而对于步骤有限的操作,如果用递归很简洁的话,可以考虑使用递归.

举个递归弊端的例子吧:
public class Test
{
public static void main(String[] args)
{
System.out.println(sum(999));
//System.out.println(sum(999999));
}
public static int sum(int i)
{