返回语句会结束方法吗?



假设我有一种方法,例如,我正在使用的方法是一个布尔值 empty 方法,如果列表(从技术上讲,则可以返回false)这是使用链接列表的堆栈)是空的,如果具有值,则返回true。

我有一个if语句,如果列表的第一个值为null(考虑到堆栈),则返回false,如果它具有值,则返回true。这是我的代码中的那种方法:

public boolean empty(){
       if(list.getFirst() == null){
          return false;
          }
          else{
          System.out.println("Stack has values.");
       }
    return true;
 }

我的问题是,如果我确定列表为空并返回false,该方法将结束吗?或者,换句话说,一旦收到返回消息,方法是否停止做事?

一旦您击中返回语句,方法大多会停止做事。一个例外是,如果您有一个最终子句的尝试块,则最终将执行该子句。

它只是在此时退出该方法。执行return后,该方法中的其余代码将无法执行,并且控制将传递给父。

例如

public boolean test(int n) {
    if (n == 1) {
        return true; 
    }
    else if (n == 2) {
        doStuff();
        return false;
    }
    doOtherStuff();
}

请注意,编译器足够聪明,可以告诉您一些代码无法联系:

if (n == 3) {
    return;
    customFunction(); //compiler error here
}

最新更新