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。它是数组的最后一个值。
我在哪里犯错?
我想在变量中放入返回值,以便我可以将它用于我将输入的其他代码。 谢谢!
答案 0 :(得分:0)
main方法中倒数第二个System.out.println
语句的输出是
[6,6]
不数组的最后一个值。这是整个数组。整个数组answer
恰好包含两个值:6和另外6个。
我只能猜到为什么你会这么想,但也许这可能对你有帮助:
ary
是一名班级成员。每项任务都会覆盖它的价值。
请注意,在Java中,与某些脚本语言(如php)相反,ary = <value>
并不追加 <value>
,而是指定< / em> <value>
到ary
。