Hi EKKi!
Wie erreiche ich das?
Mit einer statischen Variable, die du vor dem rekursiven Aufruf hoch- und gleich danach wieder runterzählst.
Oder alternativ mit einer statischen Variable, die quasi als erste Anweisung innerhalb der rekursiv aufgerufenen Funktion hoch- und als letzte Anweisung wieder heruntergezählt wird.
Vorteil: man muss beim initialen Aufruf nicht vorher die Variable setzen bzw. hochzählen.
Ob du die statische Variable innen oder außen de-/inkrementierst hat für mich weder Vor- noch Nachteile.
Und was du mit "initialem Aufruf" meinst, ist mir auch nicht ganz klar. Beim Aufruf einer rekursiven Funktion aus dem Programmcode heraus setzt du ja die statische Variable nicht. Das passiert erst innerhalb der Funktion.
Mal sehen, ob ich dich richtig verstehe.
Mein Vorschlag:
function r()
{
static $var = 0;
echo $var;
if($var < 9)
{
$var++;
r();
$var--;
}
}
Dein Vorschlag:
function r()
{
static $var = -1;
$var++;
echo $var;
if($var < 9)
r();
$var--;
}
Da finde ich "meine" Variante bzgl. der Aufgabenstellung "Gib die Zahlen von 0 bis 9 aus" schon leichter verständlich.
MfG H☼psel
--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)