2009-04-13 84 views

回答

94

它剛剛退出該方法。一旦return被執行,其餘的代碼將不會被執行。

例如。

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

注意,編譯器是足夠聰明,告訴你一些代碼不能達到:

if (n == 3) { 
    return; 
    youWillGetAnError(); //compiler error here 
} 
+4

我知道你的代碼是說明性的,但對於父母的信息;我曾與認爲每種方法應該只有一個返回語句的人一起工作。我不是其中之一,但是儘可能地儘可能地減少回報數量,而不要讓代碼變得糟糕。 – digitaljoel 2009-04-13 18:51:17

+2

是的,這絕對不是過度使用的東西,但有時它會讓它變得更容易,而且仍然可讀性強。 – CookieOfFortune 2009-04-13 19:40:03

+2

我最喜歡的方式是從嵌套循環中打破:) – 2013-05-13 22:10:46

22

您可以return在虛空方法,你就不能返回任何值(如return 5;),這就是爲什麼他們稱之爲void方法。有些人總是用return語句顯式地結束void方法,但這不是強制性的。它可以用於早退的功能,但:

void someFunct(int arg) 
{ 
    if (arg == 0) 
    { 
     //Leave because this is a bad value 
     return; 
    } 
    //Otherwise, do something 
} 
12

Java語言specification說,你可以有一個不帶表情的回報,如果你的方法返回void。

2

它的功能與具有指定參數的函數的返回值相同,但它不返回任何內容,因爲沒有任何內容可以返回,並且控制權將傳回給調用方法。

2

它退出函數並返回任何內容。因爲它返回整數1

14

關鍵字簡單地彈出從調用棧返回下列函數調用控制到行的幀

喜歡的東西return 1;將是不正確。

1

看到這個例子,你想有條件地添加到列表中。如果沒有「return」這個詞,所有的if都會被執行並添加到ArrayList!

Arraylist<String> list = new ArrayList<>(); 

    public void addingToTheList() { 

    if(isSunday()) { 
     list.add("Pray today") 
     return; 
    } 

    if(isMonday()) { 
     list.add("Work today" 
     return; 
    } 

    if(isTuesday()) { 
     list.add("Tr today") 
     return; 
    } 
} 
相關問題