首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:缺少返回语句3

错误:缺少返回语句3
EN

Stack Overflow用户
提问于 2015-09-23 11:17:08
回答 2查看 39关注 0票数 0

既然我已经在if/else中使用了return语句,那么我应该把什么作为我的方法的返回语句呢?

代码语言:javascript
运行
复制
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
    }
EN

回答 2

Stack Overflow用户

发布于 2015-09-23 11:32:00

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

票数 2
EN

Stack Overflow用户

发布于 2015-09-23 11:44:27

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

另外,正如@blm在评论中提到的,我认为您代码中的代码片段:

代码语言:javascript
运行
复制
// Returns false if the numbers are not the same
if (array[i][j] == array[k][j]){
    ...
}

应该是,

代码语言:javascript
运行
复制
// Returns false if the numbers are not the same
if (array[i][j] != array[k][j]){
    ...
}

否则,你的逻辑就不正确了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32730390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档