CASE eller IF...THEN?

Jeg har lige siddet med noget kode, hvor jeg fandt ud af at IF...THEN statements ikke altid er den ”rigtigste” løsning, selv om det vil virke hvis man bruger det.

Forstil dig eksempelvis at du har en toolbar (værktøjs-linje) hvor der skal ske noget forskelligt, alt efter hvilken knap i toolbar’en User klikker på.

Her havde jeg først lavet følgende kode, hvor jeg lige har erstattet alt det der sker når User klikker med en simpel MsgBox (for overblikkets skyld), men ellers er koden den samme:

if_elseif_eksempel

Først kigger vi altså efter, om User klikker på knappen buttonNewNote, og gør han ikke det ser vi om han så klikker på den næste, og gør han ikke det om han så klikker på den næste ... og sådan kunne vi egentlig fortsætte.

Dette er valid kode, og den virker fint nok. Men forstil dig at der sker en masse kompliceret inde i de enkelte IF og ELSEIF statements. Så skal vi hele rækken (og dermed al koden) igennem, før vi får et ”hit” og kan udføre den korrekte kode. Det kan sløve ens app helt enormt, hvis der sker meget mellem de enkelte IF og ELSEIF statements.

Her kommer CASE til vores redning. Den kigger nemlig på, om en betingelse af mange er opfyldt, og ”gør kun noget” hvis det gør sig gældende.

Derfor er denne kode meget mere ”korrekt” i og med den sparer programmet for hele tiden at checke de enkelte kriterier for, om de er opfyldt:

case-demokode

Som en tommelfinger-regel kan man sige, at i de tilfælde hvor du ikke kan lave en ren ELSE til sidst, men slutter af med en ELSEIF, så bør du nok se op om CASE kan bruges i stedet!

Læs selv mere om CASE ved at søge på ”select case” uden anførselstegn i Language Reference. LR finder du ved at klikke på dette ikon i REALbasic’s toolbar:

lr-rrb
|