Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
titleSimple if-else
alignleft
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

 Image Removed

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". 

...