为什么即使我的for循环中有一个return语句,我也会因为没有return语句而出错?

时间:2020-03-08 08:08:50

标签: java return

我正在编写一个方法,该方法是大学分配的Queue类的一部分。它应该在一个链表中搜索一个对象,如果找到了它,则返回该对象的索引,如果没有,则返回-1。当我没有“ return -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;

}

2 个答案:

答案 0 :(得分:5)

尚不清楚在何处定义大小,但可以说import SwiftUI struct ContentView: View { var body: some View { NavigationView { Text("A") List { NavigationLink(destination: Text("alfa")) { Text("row alfa") } NavigationLink(destination: Text("beta")) { Text("row beta") } NavigationLink(destination: Text("gama")) { Text("row gama") } } } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } 永远都不为真,那么您的return语句就永远不会被看到

因此,方法范围需要针对所有可能的代码路径的最终return语句

答案 1 :(得分:2)

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

相关问题