好的。所以我正在制作一个数独游戏并获得一个9x9的网格,我相互比较两个。 Array2是用户的输入数字,Array是解决方案。我在两个for循环中比较它们以获得所有可能的x和y值。它只会返回真实。
public static boolean validity(int array[][], int array2[][])
{
for(int j = 0; 9 < j; j++)
for(int i=0; 9 < i; i++)
if (array2[j][i] != array[j][i]&& array2[j][i] == 0)
return false;
return true;
}
答案 0 :(得分:1)
绝对不会返回false
因为for循环9 < j
中的条件总是false
它应该是:
public static boolean validity(int array[][], int array2[][])
{
for(int j = 0; j < 9; j++){
for(int i=0; i < 9; i++){
if (array2[j][i] != array[j][i]&& array2[j][i] == 0){
return false;
}
}
}
return true;
}
答案 1 :(得分:0)
问题在于第二个for循环。它没有执行,因为9 > i
总是评估为false。从for(int i=0; 9 < i; i++)
更改
到for(int i=0; i < 9; i++)
答案 2 :(得分:0)
两个for循环中的条件都是错误的,它必须是
for(int j = 0; j < 9; j++)
for(int i=0; i < 9; i++)
if (array2[j][i] != array[j][i]&& array2[j][i] == 0)
return false;
return true;
答案 3 :(得分:0)
它将仅返回true。因为第一个for循环中的条件在第一次迭代中失败。
for(int j = 0; 9 < j; j++)
这里9&lt; 0。所以它跳过循环并返回true。