|
Tip 191 -
Geneste If-functies in een
script
Tijdens een discussie over het
optimaliseren van geneste if statements bleek aan het
licht te komen dat FileMaker tot versie 6 - hoe ongelooflijk
ook - alle if's evalueert, zelfs als al meteen de
eerste juist was.
If (iets)
Doe dit
Else
If (iets anders)
Doe dat
Else
If (nog iets anders)
Doe dan weer dat
EndIf
EndIf
EndIf
Dit gebeurt in calculaties en in
scripts. Je wint dus geen snelheid door bijvoorbeeld het
meest waarschijnlijke geval bovenaan te zetten. FileMaker
doorloopt ze toch allemaal.
Tenzij...
Tenzij je roept: "Halt! waarom
verder zoeken als je de waarheid al gevonden hebt?
Stop!".
Dit tamelijk lange zinnetje is
géén scriptstap. Exit Script
wél.
We herschrijven de if
statements dus op deze manier:
If (iets)
Doe dit
Exit Script
EndIf
If (iets anders)
Doe dat
Exit script
EndIf
If (nog iets anders)
Doe dan weer dat
Exit Script
EndIf
We vervangen dus de geneste if
statements door een reeks van opeenvolgende met telkens
een Exit
Script.
Dit is duidelijk te lezen, en het
script wordt verlaten, meteen wanneer aan een voorwaarde is
voldaan. Voor de calculaties is een analoge oplossing niet
mogelijk: daar hebben we geen Exit-stap.
In versie 7 liggen de zaken helemaal
anders, niet in het minst dank zij de nieuwe scriptstap
Else If.
|