错误:缺少return语句3

时间:2015-09-23 03:17:08

标签: java return

我应该把什么作为我整个方法的return语句,因为我已经在if / else中使用了return语句?

public static boolean rowsAreValid(int[][] array){
        for (int i = 0; i < array.length; i++){
            for (int k = i +1; k < array.length; k++){
                for (int j = 0; j < array[i].length; j++) {
                    // Returns false if the numbers are not the same
                    if (array[i][j] == array[k][j]){
                        System.out.println("false");
                        return false;
                    }
                    //Returns true if numbers are the  same
                    else {
                        System.out.println("true");
                        return true;
                    }
                }
            }
        }
        // RETURN STATEMENT
    }

2 个答案:

答案 0 :(得分:2)

这段代码令人困惑,但是在编译器抱怨的原因(没有解决代码的整体结构)的情况下:你可能会遇到循环不执行的情况,如果发生这种情况,你的if -else block永远不会执行,你也不会有回报。例如,如果array.length == 0,就会发生这种情况。在这些情况下,您需要确定此方法的正确答案,并相应地提供返回。

答案 1 :(得分:0)

由于您希望在数字相同时返回true,然后输入您的return语句:return true。因为通过推理,你的数字永远不会相同。

同样@blm在评论中注明,我认为代码中的代码段为:

// Returns false if the numbers are not the same
if (array[i][j] == array[k][j]){
    ...
}

应该是,

// Returns false if the numbers are not the same
if (array[i][j] != array[k][j]){
    ...
}

因为否则,你的逻辑会不正确。