Java kezdő Kérdés: egy eljárás az úgynevezett belső magától?

szavazat
1

Volt egy vizsga ma, és az volt a kérdés, amit nem igazán emlékszem a pontos kódot.

De mi emlékszem, hogy benne az method exampleMethod(int num)volt a sor hívja a módszer maga belsejében a módszert.

Azt akarom tudni lehet a módszer az úgynevezett belső magától? mert ez egy feleletválasztós kérdést, és azt akarták tőlünk, hogy megtalálják a kimenet.

Remélem kérdés egyértelmű.

Hála SOF :)

A kérdést 12/06/2011 13:55
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
14

Biztos, hogy lehet. Ha ezt teszed, hogy hívják a rekurziót . Legyen óvatos, hogy van egy kilépési feltétel, vagy ha kap egy halom túlcsordulás.

például

int iAmRecursive(int num) {
   if (num > 10) // break out at some condition; i.e. don't recurse
       return num; // return so the recursion doesn't continue

   iAmRecursive(num + 1); // I didn't break out, so continue to recurse.
}

EDIT - itt ugyanaz a példa, de egy másik kitörési, a bók @ Ted 'üzenetére

int iAmRecursive(int num) {
   if (num <= 10) // only continue under certain condition
       iAmRecursive(num + 1); 

   // When I get here, I implicitly break out by not recursing.
}

Azonban én inkább mindig olyan egyértelmű, mint lehetséges, így azt kifejezetten kitörni, mint az első példában, ha lehetséges.

Válaszolt 12/06/2011 13:57
a forrás felhasználó

szavazat
1

Egy szép példa a rekurzív egy módszer, hogy kiszámítsa a faktoriális.

public static long factorial(int i)
{
    if (i == 1) return 1;
    return factorial(i - 1) * i;
}

Ezután hivatkozhat egyszerűen így:

long f = factorial(10); // equals 10! = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 (* 1)
Válaszolt 12/06/2011 14:30
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more