...
Betingelser er også kjent som som if-setninger. Alle betingelser stiller et spørsmål som svares med enten "ja" eller "nei". I programmeringssjargong sier vi at uttrykket må kunne evalueres til til sant eller eller usant, og omfatter derfor et boolsk uttrykk.
Den enkleste form for betingelse er en en if-else spørring. Denne evaluerer et uttrykk til sant eller usant, og velger en programflyt avhengig av dette. I figuren under ser du et eksempel på en slik spørring, som er et forenklet sekvensdiagram for kjøring av Java-programmer. Det er prosessen "Run java program" som er if-delen av betingelsen, og "Give error message" som er else-delen av betingelsen.
PlantUML Macro | ||||
---|---|---|---|---|
| ||||
start if (If...) then (JDKJava is installed) :Run java \nprogram; else (JDKJava is <b>not</b> installed) :Give error \nmessage; endif stop |
Noen ganger ønsker man å velge mellom flere enn to kodeblokker. Dette kan enten gjøres med en nøstet if. Ta et program Man tar først et valg mellom to kodeblokker, og den else-kodeblokken inneholder en ny betingelse. Se på et eksempel der en faglærer gir inn poengsum (score), og får ut en bokstavkarakter :(grade):
PlantUML Macro |
---|
start
if (score > 90) then (true)
:grade = A;
else (false)
if (score > 80) then (true)
:grade = B;
else (false)
if (score > 60) then (true)
:grade = C;
else (false)
if (score > 50) then (true)
:grade = D;
else (false)
if (score > 40) then (true)
:grade = E;
else (false)
:grade = F;
endif
endif
endif
endif
endif
stop |
Noen ganger blir det mange slike spørringer nøstet nøstet, og det blir fort forvirrende. En bedre løsning er da å bruke elseif-strukturen. Her kan man evaluere flere uttrykk, og man vil kjøre den første kodeblokken som passer spørringen. I diagrammet nedenfor kan man tenke seg at man går fra venstre mot høyre, og følger den første pilen som passer.
PlantUML Macro |
---|
(*) --> "If.."
"If.." -->[score > 90] "grade = A"
--> (*)
"If.." -->[score > 80] "grade = B"
--> (*)
"If.." -->[score > 60] "grade = C"
--> (*)
"If.." -->[score > 50] "grade = D"
--> (*)
"If.." -->[score > 40] "grade = E"
-->(*)
"If.." -->[else] "grade = F"
--> (*) |
Løkker
Løkker er kode som utføres flere ganger. Det er vanlig å skille mellom while-løkker og for-løkker. En while-løkke sjekker en betingelse, og gjennomfører koden i løkkekroppen så lenge denne betingelsen er sann. Man må være forsiktig når man skriver while-løkker; dersom ikke betingelsen er formulert riktig kan man ende opp med det som kalles en "uendelig løkke".
...