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()==42
17+4*2==42 && bot()==42
17+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?