Java Beginner - 返回数组不显示整个数组,只显示最后一个数组

时间:2017-09-28 21:57:45

标签: java arrays return-value

import java.util.Arrays;

public class Main {
    static int numDie = 2;
    static int sides = 6;
    static String display = "";
    static String a;
    static String[] ary;

    public static String[] spitDie(int x, String s) {
        if (x == 1) {
            for (int i = 1; i < sides + 1; i++) {
                a = s + String.valueOf(i);
                ary = a.split("");
                System.out.println(Arrays.toString(ary));
            }
        } else {
            for (int i = 1; i < sides + 1; i++) {
                spitDie(x - 1, s + String.valueOf(i));
            }
            System.out.println();
        }
        return ary;
    }

    public static void main(String[] args) {
        String[] answer = spitDie(numDie, display);
        System.out.println(Arrays.asList(answer));
        System.out.println(answer[0]);
    }
}

这是骰子组合生成器代码。

来自System.out的代码会返回所有ArrayList。 [1,1] [1,2] [1,3] ...... [6,3] [6,4] [6,5] [6,6]

然而, 最后三个代码只返回[6,6],6,6。它是数组的最后一个值。

我在哪里犯错?

我想在变量中放入返回值,以便我可以将它用于我将输入的其他代码。 谢谢!

1 个答案:

答案 0 :(得分:0)

main方法中倒数第二个System.out.println语句的输出是

  

[6,6]

数组的最后一个值。这是整个数组。整个数组answer恰好包含两个值:6和另外6个。

我只能猜到为什么你会这么想,但也许这可能对你有帮助:

  • ary是一名班级成员。每项任务都会覆盖它的价值。

  • 请注意,在Java中,与某些脚本语言(如php)相反,ary = <value>并不追加 <value>,而是指定< / em> <value>ary