Gegeben sei folgende nicht terminierende Funktion aus der Vorlesung, deren Auswertung mit einem Fehler abbricht.
int bot(){return bot();}
Lassen Sie folgende drei Ausdrücke in der JShell auswerten:
17+4*2==25 || bot()==4217+4*2==42 && bot()==4217+4*2==42 ? bot() : 42
Was stellen Sie fest? Was kann man über die Auswertung der logischen Operatoren und dem Bedingungsoperator lernen?
Sei zusätzlich gegeben folgende Funktion, die den Bedingungsoperator als Funktion kapselt:
int wenn(boolean cond, int a1, int a2){ return cond ? a1 : a2;}
Lassen Sie nun folgenden Ausdruck auswerten.
wenn(17+4*2==42, bot(), 42)
Was stellen Sie fest? Was können Sie über die Auswertung von Funktionsaufrufen lernen?