有效性检查方法不起作用

时间:2017-03-11 11:15:33

标签: java

好的。所以我正在制作一个数独游戏并获得一个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;
}

4 个答案:

答案 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。