Java初学者-返回数组不';不显示整个数组,但仅显示最后一个数组 导入java.util.array; 公共班机{ 静态int numDie=2; 静态内部侧=6; 静态字符串显示=”; 静态字符串a; 静态字符串[]元; 公共静态字符串[]spitDie(int x,字符串s){ 如果(x==1){ 对于(int i=1;i

Java初学者-返回数组不';不显示整个数组,但仅显示最后一个数组 导入java.util.array; 公共班机{ 静态int numDie=2; 静态内部侧=6; 静态字符串显示=”; 静态字符串a; 静态字符串[]元; 公共静态字符串[]spitDie(int x,字符串s){ 如果(x==1){ 对于(int i=1;i,java,arrays,return-value,Java,Arrays,Return Value,这是骰子组合生成器代码 System.out中的代码返回所有ArrayList。 [1,1][1,2][1,3]…[6,3][6,4][6,5][6,6] 但是,, 最后三个代码只返回[6,6],6,6。它是数组的最后一个值 我在哪里犯了错误 我想把返回值放在变量中,这样我就可以用它来输入额外的代码。 谢谢 主方法中倒数第二个System.out.println语句的输出为 [6,6] 这不是数组的最后一个值。这就是整个阵列。整个数组answer正好由两个值组成:6和另一个6 我只能猜测你为什

这是骰子组合生成器代码

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

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

我在哪里犯了错误

我想把返回值放在变量中,这样我就可以用它来输入额外的代码。
谢谢

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

[6,6]

这不是数组的最后一个值。这就是整个阵列。整个数组
answer
正好由两个值组成:6和另一个6


我只能猜测你为什么会有不同的想法,但也许这会对你有所帮助:

  • ari
    是类成员。每个赋值都会覆盖它的值

  • 请注意,在Java中,与php等脚本语言不同,
    ari=
    没有附加
    ,而是将
    赋值给
    ari


欢迎使用堆栈溢出!看起来您需要学习使用调试器。请随便吃点。如果你事后仍有问题,请随时回答更具体的问题。我如何获得[1,1][1,2][1,3][1,4][1,5][1,6][2,6][2,3][2,4][2,5][2,6][3,1][3,3][3,4][4,1][4,5][4,6][5,2][5,5][5][5,6][6,1][3,5][4][4,5][4][4][4,5][4][4][4][5][5][5][5][5][6][6][6]6]6]6][6,5][6,6]来自main方法?。我在打印System.out.println(Arrays.toString(ary))时得到这个数组;来自spitDie,但不是fron main method.。我该怎么称呼它呢?非常感谢Lykanion。我刚开始学习java。这很令人困惑。你可能应该阅读Joe C链接的调试技术,作为对你问题的评论。你应该阅读一些java教程和/或书籍。这可能是一个开始。
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]);
    }
}