Lecture overview -- Keyboard shortcut: 'u'  Previous page: Increment, decrement og assignment operatorer i Java -- Keyboard shortcut: 'p'  Next page: Input output og programstrukturering [Section] -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Play sound for this page -- Keyboard shortcut: 'y'  Page 32 : 39
Forelæsningsnoter i Objekt-orienteret Programmering
De ikke objekt-orienterede dele af Java
Den betingede operator i Java

En if-then-else konstruktion (if e then s1 else s2) opfattes som regel som en kommando (og en kontrolstruktur). I mange programmeringssprog kan man også bruge if-then-else i udtryk. Vi siger undertiden, at if-then-else anvendt i udtryk er en betinget operator. Eksempelvis er
    2 + if even(a) then a else a + 1
et fuldgyldigt udtryk i sådanne sprog. Java understøtter dette, men i en anden syntaks


logiskUdtryk ? udtryk1 : udtryk2

Det logiske udtryk beregnes først. Hvis værdien er sand, beregnes og returneres udtryk1, ellers beregnes og returneres udtryk2

static int fak(int n){
   return 
     n == 0 ? 1 : n * fak(n-1);
 }

Her ser vi den velkendte fakultetsfunktion, hvor kroppen essentielt er ét udtryk programmeret med den betingede operator

static int fak1(int n){
   if (n == 0)
     return 1;
   else return n * fak1(n-1);
 }

Til sammenligning ser vi en anden version af fakultetsfunktionen, hvor kroppen indeholder en if then else kontrolstruktur