Java 語言中的 return 語句

來源:互聯網
上載者:User
語句 眾所周知,return 只能用在有傳回型別的函數中,但是有傳回值的函數一定要有return嗎?return都可以用在函數的哪些地方呢?這是本文需要討論的問題。



--------------------------------------------------------------------------------


例一:

class test {
  public  String test() {
    if(true){
      return "";
    }
    else{
      return "";
    }
  }
}

上面這樣即可通過編譯,但是下面這兩個例子卻不能通過編譯:

(一)
class test {
  public  String test() {
    if(true){
      return "";
    }
  }
}


(二)
class test {
  public  String test() {
    if(isTrue()){
      return "";
    }
    else if(!isTrue()){//兩個if裡的判斷包括了所有的可能性,但是還是編譯期error
      return "";
    }
  }
   boolean isTrue(){
    return true;
  }
}

結論1:
     對於(一),這是因為java編譯器認定單獨的if語句只在當一定條件滿足情況下才執行,它認為if不會有任何情況下都能執行的能力。
     對於(二),這是因為java編譯器對if else 語句能夠全面囊括所有情況的能力只限定在的if...else(或if...else if...else)時,而不包括if...else if。



--------------------------------------------------------------------------------


再看例二:

class test {
  public  String test() {
    while(true){
      return "";
    }
  }
}
上面這樣即可通過編譯,但是下面這樣不行:

class test {
  public  String test() {
    while(isTrue()){
      return "";
    }
  }
   boolean isTrue(){
    return true;
  }
}

結論2:
     這是因為編譯器認為while語句有在任何情況下都能執行的能力,但是只在入參為true的情況下有該能力。



--------------------------------------------------------------------------------


再看例三:

public class test {
   String test() throws Exception{ 

     throw new Exception();//拋出異常後,跳出程式,程式中止
  }
}
結論3:
    如果函數中建立了異常,並拋出,則該函數可以不傳回值。



--------------------------------------------------------------------------------


知道了以上的情況,你就可以熟練自如得運用return了。


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。