繁体   English   中英

即使我的 for 循环中有一个 return 语句,为什么我会因为没有 return 语句而收到错误消息?

[英]Why do I get an error for not having a return statement even though I have one in my for loop?

我正在编写一个方法,它是大学作业的 Queue 类的一部分。 它应该搜索一个对象的链接列表,如果找到,则返回该对象的索引,如果没有,则返回 -1。 当我没有“返回 -1;”时下面的代码中的语句我收到一个错误,说当我在 for 循环中显然有一个上面的语句时,我没有返回语句。 这里有什么问题?

    public int find(Object item) {

    Node current = head;


    for(int index = 0; index < size; index++) {
        if(current.data.equals(item)) {
            return index;
        }
        else {
            current = current.next;
        }
    }

    return -1;

}

不清楚 size 在哪里定义,但假设index < size永远不是真的,那么你的 return 语句永远不会被看到

因此,方法作用域需要所有可能的代码路径的最终返回语句

因为在编译时编译器不知道变量的值。 因此编译器无法评估条件并检查条件是真还是假。 因此消除了给出错误的“return -1”语句。 希望这能消除您的困惑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM