Auf Thema antworten

das Base-Objekt jedes Aufrufs wird in diesem Fall tatsächlich theoretisch im Speicher gehalten,

ob Java von selber entsprechendes erkennt, kann ich nicht sagen,

helfen würde alpha=null; vor dem Rekursionsaufruf,


ansonsten gibt es noch die main-Methode an sich, bei jedem rekursiven Aufruf wird sich der Aufrufer gemerkt, der StackTrace von Exceptions wird sehr lang,

der Stack im Arbeitsspeicher gefüllt, bei Standardeinstellungen gibt es nach ein paar Tausend Runden eine StackOverflowException,

dagegen gibts auch keine Optimierung,


schlimm muss all das nicht sein, es gibt wohl kein Programm der Welt, wo jemand überhaupt 1000x 'ja' eintippt,

ob 10 Base-Objekte schon schlecht sind, musst du selber wissen



wann immer eine Schleife einfach möglich ist, solltest du aber wirklich in Betracht ziehen,

paar Code-Zeilen mehr sind doch kein Argument,

evtl. getrennt in main mit Schleife und Untermethode


[code=Java]

public class Test {


    public static void main(String[] args)  {

        while (run());

    }


    private static boolean run() {

        // hier natürlich eher dein Programm, am Ende false zurückgeben wenn Abbruch

      

        System.out.println("run");

        return (Math.random() < 0.2);

    }

}

[/code]



Oben