Subato

Resource Files

Auswertung von Ausdrücken

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?

 



You are not logged in and therefore you cannot submit a solution.