Allt om Select..Case!
I denna artikel ska vi lära oss att använda den smidiga
Select Case-satsen. För att ta del av denna artikeln bör du ha goda kunskaper i
Variabler, If-satser och Response.Write.
Varför använda Select Case?
Man använder oftast Select Case när man vill jämföra många
olika möjligheter, det blir då för mycket kod och för omständligt att använda
en IF-sats.
Select Case är enligt mig det mest smidiga sättet att
jämföra olika värden med.
Tänk dig att du vill kolla om en variabel innehåller visst
värde och det finns 5 st olika alternativ, det blir då ganska många ElseIf om
man ska använda If-satser.
Hur fungerar det då?
Du ställer ett värde som man sedan jämför med de olika
alternativen som finns.
Så här kan det se ut :
<%
Select Case 10
Case 2
Response.Write("Värdet är 2")
Case 5
Response.Write("Värdet är 5")
Case 10
Response.Write("Värdet är 10")
End Select
%>
Koden ovan väljer alltså det alternativet som är 10 och
skriver ut texten "Värdet är 10".
Det var väl ganska smidigt? Ett annat sätt är att ställa
flera värden på samma Case, om bägge duger så att säga.
<%
Select Case 5
Case 2
Response.Write("Värdet är 2")
Case 10, 5
Response.Write("Värdet är 10 eller 5")
End Select
%>
Koden ovan väljer denna gång alternativet som är 5, och i
detta fall skriver den ut texten "Värdet är 10 eller 5", som du ser
så kan man ange att den accepterar värdena 10 och 5.
Ett till exempel :
<%
Dim Typ
Typ = "Tjej"
Select Case Typ
Case "Kvinna", "Tjej", "Flicka", "Fru"
Response.Write("Du är alltså av det kvinnliga könet?")
Case "Man", "Pojke", "Kille", "Herr", "Grabb"
Response.Write("Du är alltså av det manliga könet?")
End Select
%>
Koden ovan returnerar alltså texten "Du är alltså av
det kvinnliga könet?", testa att ändra värdet på variabeln Typ.
Om inget stämmer då?
Precis som i en If-sats kan man använda en Else för att
alltid returnera ett värde även om inget stämmer.
<%
Select Case 1
Case 2
Response.Write("Värdet är 2")
Case 5
Response.Write("Värdet är 5")
Case 10
Response.Write("Värdet är 10")
Case Else
Response.Write("Värdet var något annat")
End Select
%>
Koden ovan returnerar alltså "Värdet var något
annat" eftersom inget av de övriga värdena stämmer.
Ett smart exempel :
Låt oss tro att vi har ett formulär på hemsidan och vi vill
att vissa fält måste vara ifyllda, detta brukar man lösa med If-satser som
kollar om det returnerade värdet var tomt, det blir dock en massa If-satser om
det är många fält..
Detta är lite smidigare :
<%
Dim Namn, Adress, Tel, Epost
Select Case ""
Case Namn, Adress, Tel, Epost
Response.Write("Alla fält måste vara ifyllda!!")
End Select
%>
Lycka till!