使用递归在java中反转数组
我刚刚开始学习递归,并且能够用它编写一个简单的阶乘程序,没有太多问题。现在,我正在尝试编写一个递归方法,以相反的顺序编写数组,但我不知道我做错了什么。我错过了什么?多谢各位使用递归在java中反转数组,java,recursion,Java,Recursion,我刚刚开始学习递归,并且能够用它编写一个简单的阶乘程序,没有太多问题。现在,我正在尝试编写一个递归方法,以相反的顺序编写数组,但我不知道我做错了什么。我错过了什么?多谢各位 import java.io.*; public class Recursion { public static void main(String[] args) throws IOException{ int myArray[] = {1,2,3,4,5,6,7,8,9,10}; } public
import java.io.*;
public class Recursion {
public static void main(String[] args) throws IOException{
int myArray[] = {1,2,3,4,5,6,7,8,9,10};
}
public static void reverseDisplay(int[] ary, int position){
if(position > 0)
System.out.print(ary[position]);
reverseDisplay(ary, position - 1);
}
}
- 您不需要调用递归方法
- 因为
总是 由于缺少括号而正在执行reverseDisplay()
- 此外,停止条件必须为
,因为数组的第一个索引为0=0
import java.io.IOException;
public class Recursion {
public static void main(String[] args) throws IOException{
int myArray[] = {1,2,3,4,5,6,7,8,9,10};
reverseDisplay(myArray, myArray.length -1);
}
public static void reverseDisplay(int[] ary, int position){
if(position >= 0) {
System.out.print(ary[position]);
reverseDisplay(ary, position - 1);
}
}
}
- 您不需要调用递归方法
- 因为
总是 由于缺少括号而正在执行reverseDisplay()
- 此外,停止条件必须为
,因为数组的第一个索引为0=0
import java.io.IOException;
public class Recursion {
public static void main(String[] args) throws IOException{
int myArray[] = {1,2,3,4,5,6,7,8,9,10};
reverseDisplay(myArray, myArray.length -1);
}
public static void reverseDisplay(int[] ary, int position){
if(position >= 0) {
System.out.print(ary[position]);
reverseDisplay(ary, position - 1);
}
}
}
当执行递归时,需要一个称为基本情况的东西。您需要使用基本情况来结束递归,否则将导致堆栈溢出 你可以试试这样的。
return
语句停止了无止境的递归
public static void reverseDisplay(int[] ary, int position){
if(int == -1)
return;
System.out.print(ary[position]);
reverseDisplay(ary, position - 1);
}
当执行递归时,需要一个称为基本情况的东西。您需要使用基本情况来结束递归,否则将导致堆栈溢出 你可以试试这样的。
return
语句停止了无止境的递归
public static void reverseDisplay(int[] ary, int position){
if(int == -1)
return;
System.out.print(ary[position]);
reverseDisplay(ary, position - 1);
}
尝试:
如果position==ari.length
完成递归,则递归调用reverseDisplay
,然后打印ari
的当前位置
如果
position==ari.length
您完成了递归,否则您将递归调用reverseDisplay
,然后打印ari
的当前位置,请确切地说明问题所在,最好用一些示例。可能System.out.print(ari[position-1])代码>?结束条件if(position>0)
似乎表明了这一点。当我运行代码时,我根本没有输出。您在main中调用reverseDisplay的位置在哪里?叫它!实际上,您从未调用过反向显示,这就是原因。你能试着测试一下函数本身吗?请澄清到底出了什么问题,最好是用一些例子。也许System.out.print(ary[position-1])代码>?结束条件if(position>0)
似乎表明了这一点。当我运行代码时,我根本没有输出。您在main中调用reverseDisplay的位置在哪里?叫它!实际上,您从未调用过反向显示,这就是原因。你能试着测试一下这个函数吗?非常感谢。我现在明白我做错了什么。非常感谢。我明白我现在做错了什么。