递归数组遍历:相同的代码,不同的结果

Recursive array traversing: same code, different results

提问人:stupidmoron 提问时间:10/1/2022 更新时间:10/1/2022 访问量:47

问:

我有两个以递归方式遍历数组的短程序。第一个数组向后打印数组,第二个数组向前打印数组。第二个应该向后打印数组。为什么是向前打印?这是相同的代码!!

方案一:

public class SomeClass2 {
    public static String someMethod(int[] array2, int x) {
        if (x < array2.length)
            return String.format("%s%d ", someMethod(array2, x + 1), array2[x]);
        else
            return "";
    }
    
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        String results = someMethod(array, 0);
        System.out.println(results);
    }
}

计划二:

import java.util.Scanner;

public class BackwardsArray {
    
    public static String reverse(char[] array, int x) {
        if (x < array.length)
            return String.format("%s " + reverse(array, x + 1), array[x]);
        else
            return "";
    }
    
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter a sentence: ");
        String sentence = input.nextLine();
        char[] charArray = sentence.toCharArray();
        String backwardsSentence = reverse(charArray, 0);
        System.out.println(backwardsSentence);
    }
    
    
}
Java 数组 递归

评论

0赞 flyingfox 10/1/2022
格式不一样
0赞 stupidmoron 10/1/2022
“格式不一样”是什么意思?第一个程序中的 someMethod 方法和第二个程序中的 reverse 方法是相同的。这两种方法中的代码是相同的。
0赞 flyingfox 10/1/2022
查看我发布的答案
0赞 stupidmoron 10/2/2022
我找到了解决方法。谢谢。

答: 暂无答案