gpt4 book ai didi

java - 二维数组在 While 循环内不改变值

转载 作者:太空宇宙 更新时间:2023-11-04 11:38:34 25 4
gpt4 key购买 nike

由于某种原因,2D 实例整数数组没有在 while 循环内将其变量值更改为 0。 board是另一个具有完整数独板的2D int数组,solve_1通过从1开始测试到9来解决数独,solve_2通过回溯方法从9到1来解决数独,两者都工作正常。因此,如果有超过 1 个解决方案,则两种方法的二维数组输出 model_1 和 model_2 将有所不同。2D 数组拼图存储最后一个独特的数独网格。 print 方法输出数组,但没有一个方 block 更改为 0,尽管循环经历无限迭代而没有堆栈溢出,即到达注释行但不会将任何 int 更改为 0。该行在循环外工作,当然只有一次。

private void makePuzzle() {
model = board;
int row, col;
while (Arrays.deepEquals(model_1, model_2)) {
puzzle = model;
row = r.nextInt(9);
col = r.nextInt(9);
model[row][col] = 0; //this line is problematic
solve1(0, 0);
solve2(0, 0);
System.out.println(row+" "+col);
print(model);
}
}

最佳答案

我不太理解它,但我相信问题是你应该将棋盘值作为方法中的参数传递,如 makePuzzle(board)

除非将 board 变量设置为全局变量,否则它不应该在方法内有值。因为java认为内板和外板不一样

关于java - 二维数组在 While 循环内不改变值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43021340/

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