...
Code Block |
---|
| if score >= 85:
grade = 'A';
else:
if score >= 75:
grade = 'B';
else:
if score >= 60:
grade = 'C';
else:
if score > 50:
grade = 'D';
else:
if score > 40:
grade = 'E';
else:
grade = 'F';
print(grade) |
| PlantUML Macro |
---|
start
if (score >= 85) then (true)
:grade = "A";
else (false)
if (score > 75) 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
:print(grade);
stop |
|
Noen ganger blir det mange slike spørringer nøstet, og det blir fort forvirrende. En bedre løsning er da å bruke elseifelse-if-strukturen. Her kan man evaluere flere uttrykk, og man vil kjøre den første kodeblokken som passer spørringenoppgi flere betingelser i hver sin else-if-grein, og den første som gir true/sann vil bli fulgt. 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.
Code Block |
---|
| if score >= 85:
grade = 'A';
elsif score >= 75:
grade = 'B';
elsif score >= 60:
grade = 'C';
elsif score > 50:
grade = 'D';
elsif score > 40:
grade = 'E';
else:
grade = 'F';
print(grade) |
| |
...
...
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"
--> (*) |
|
Gruppering av setninger
En kan godt ha flere setninger i then- og/eller else-delen, og de fleste programmeringsspråk har en måte å gruppere setninger på. I Java grupperes setninger ved at en har { og } rundt, mens en i python bruker innrykket for å angi hvilke setninger som hører til de ulike greinene.
...