2010-01-11 80 views
1

我需要再次運行我的/對象方法。這是否允許?我怎樣才能做到這一點?如何多次執行Java方法?

+0

你的意思重新啓動的方法是什麼?在中,再次調用該方法? – 2010-01-11 16:28:50

+5

要理解遞歸,您必須先了解遞歸。 – 2010-01-11 16:33:01

+0

如果你正在尋找遞歸,如下所述,確保你有一個方法來解決它,因爲遞歸是一個可怕的方式來導致一個嚴重的崩潰。 – Paddy 2010-01-11 16:33:41

回答

1

遞歸?當然java支持它

public int foo (int param) { 
    if (param == 0) 
     return 0; 
    return param + foo (--param); 
} 

public static void main (String[] args) { 
    System.out.println (foo (5)); 
} 
+1

好的是,它的名字呢? – bob 2010-01-11 16:29:03

+1

這個實現的技術名稱是「無限遞歸」,我相信。 ;) – 2010-01-11 16:30:36

+0

也許,這只是一個例子 – Roman 2010-01-11 16:31:59

5

不知道你正在嘗試做的,但你可以簡單地調用從自身的方法(這就是所謂的recursion):

void recursiveMethod() { 
    System.out.println("Called the recursive method"); 
    recursiveMethod(); 
} 

調用該方法將打印「叫遞歸方法」行了,直到你得到一個StackOverflowError。

+2

+1 - 很好的使用StackOverflow = P – 2010-01-11 16:32:54

3

您可以從內部再次調用該方法(也稱爲遞歸)。所以,像這樣:

public void myMethod() { 
    // Do some stuff here. 

    // Possible conditional statement... 
    if(restart) { 
    myMethod(); // This will "restart" the method. 
    } 
} 

如果你有一個更具體的例子,你在想什麼,這可能有助於改善你的問題。

+0

我會認爲do-while/for(;;)循環會更合適。 – 2010-01-11 16:33:01

0

看到,因爲你要的對象的引用(你已經跑法), 簡單地重複以前的說法:

myDog.bark(); // bark once 
myDog.bark(); // bark again