gpt4 book ai didi

Java for 循环没有正确填充数组

转载 作者:行者123 更新时间:2023-11-29 09:43:26 25 4
gpt4 key购买 nike

我有以下代码:

public class solutionsTest {
public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
int allsolutions[][][][][] = new int[16][16][16][16][16];

for (int i = 0; i <= 15; i++) {
for (int j = 0; j <= 15; j++) {
for (int k = 0; k <= 15; k++) {
for (int l = 0; l <= 15; l++) {
allsolutions[i][j][k][l][j] = i;
System.out.println("Set index " + i + " " + j + " " + k + " " + l + " " + j + " equal to " + i);
}
}
}
}

System.out.println(allsolutions[4][2][1][4][5]);
System.out.println(allsolutions[5][2][1][4][5]);
System.out.println(allsolutions[6][2][1][4][5]);
System.out.println(allsolutions[7][2][1][4][5]);
System.out.println(allsolutions[8][2][1][4][5]);
}
}

循环内部的 println 检查正确地报告了存储的数据,如果你运行程序就可以看到。但是,在循环之后,如果我尝试检索在循环内设置的任何值,所有值 = 0。我错过了什么?

如在循环中设置的那样,所有值都应对应于数组第一维的索引:

所有解决方案[0][x][x][x][x] = 0;

所有解决方案[1][x][x][x][x] = 1;

所有解决方案[2][x][x][x][x] = 2;

等等……

最佳答案

您永远不会为 allsolutions[4][2][1][4][5] 或您正在打印的其他 4 个数组位置中的任何一个分配任何内容,因此它们保持为 0。您您的数组中只有 4 个嵌套循环和 5 个维度。

您只能将值分配给第二个索引等于第五个索引的位置。例如,如果您尝试打印 System.out.println(allsolutions[4][2][1][4][2]);,您将看到一个非零值.

您可能应该使用 5 个嵌套循环而不是重新使用 j 索引:

for(int i=0;i<=15;i++){
for(int j=0;j<=15;j++){
for(int k=0;k<=15;k++){
for(int l=0;l<=15;l++){
for(int m=0;m<=15;m++){
allsolutions[i][j][k][l][m] = i;
System.out.println("Set index "+ i + " " + j + " " + k + " " + l + " " + m + " equal to " + i);
}
}
}
}
}

关于Java for 循环没有正确填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31234092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com