Betingelser bruges til kun at udføre en del af et script hvis nogle på forhånd definerede forhold (betingelser) er opfyldt. Det kan f.eks. være en betingelse om at datoen f.eks. skal være efter 1/1 2001 - eller at en variabel mindst skal have værdien 7.
Den første type af betingelse vil vil kigge på er
If-Then-Else betingelsen, som kan opstilles på følgende form:
If betingelse Then sætning Else sætning End If
Igen er syntaksen så tæt på ganske almindeligt engelsk, at den næsten ordret kan gengives som Hvis en betingelse er opfyldt Så udfør noget Ellers udfør noget andet.
I lektion 4 lærte vi hvordan man kunne få returneret månedens nummer - dette kan vi anvende som eksempel til en
If-Then-Else betingelse hvor vi ved hjælp af månedens nummer ønsker at finde ud af hvillken årstid det er:
<html> <head> <title>Løkker</title> </head> <body> <% If Month(Date) = 3 Then Response.Write "<p>Nu er det forår!</p>" Else Response.Write "<p>Jeg ved ikke hvilken årstid det er!</p>" End If %> </body> </html>
Som du nok kan se er det ikke en særlig smart betingelse - for den virker jo kun når det er marts måned!
Der er imidlertid gode muligheder for at udbygge betingelsen, så den bliver mere præcis. Lad os se på mulighederne for at udbygge sætningen med nogle sammenlignings-operatorer:
= Lig med
< Mindre end
> Større end
<= Mindre end eller lig med
>= Større end eller lig med
<> Forskellig fra
Hertil kommer nogle logiske operatorer:
AND Og
OR Eller
NOT Ikke
Operatorerne kan benyttes til opstille mere præcise betingelser - således kan vi nu udbygge ovenstående eksempel til at medtage alle forårs-månederne:
<html> <head> <title>Løkker</title> </head> <body> <% If Month(Date) >= 3 AND Month(Date) <= 5 Then Response.Write "<p>Nu er det forår!</p>" Else Response.Write "<p>Nu er det enten vinter, sommer eller efterår!</p>" End If %> </body> </html>
Lad os prøve at kigge nærmere på den udvidede betingelse:
Month(Date) >= 3 AND Month(Date) <= 5
Betingelsen kan oversættes til:
Operatorer spiller en væsentlig rolle mange steder i ASP.
Lad os prøve at udvide betingelsen lidt mere - for vores betingelse virker jo stadig kun i marts, april, og maj - alle andre måneder er endnu ikke dækket af betingelsen.
Elseif kan oversættes til dansk med Ellers så.
Ved at bruge Elseif kan vi udvide betingelsen så den virker for alle måneder:
<html> <head> <title>Løkker</title> </head> <body> <% If Month(Date) >= 3 AND Month(Date) <= 5 Then Response.Write "<p>Nu er det forår!</p>" Elseif Month(Date) >= 6 AND Month(Date) <= 8 Then Response.Write "<p>Nu er det sommer!</p>" Elseif Month(Date) >= 9 AND Month(Date) <= 11 Then Response.Write "<p>Nu er det efterår!</p>" Else Response.Write "<p>Nu er det vinter!</p>" End If %> </body> </html>
At opsætte betingelser handler om at tænke logisk, og være metodisk. Vores eksempel her med årets 12 måneder er jo ret overskueligt - men du kan sikkert sagtens forestille dig mere komplekse problemstillinger.
En anden måde at opstille betingelser på er ved at bruge
Select Case metoden:
Select Case Udtryk Case 1 sætning Case 2 sætning Case Else sætning End Select
Metoden tager sit udgangspunkt i et udtryk - og opstiller herefter forskellige "svar" eller "værdier" med tilhørende sætninger. Den nemmeste måde at forklare metoden er at vise et eksempel.
Som du måske kan huske fra lektion 4, returnerer funktionen
Weekday den aktuelle ugedag. Det kan vi bruge til et eksempel hvor vi, istedet for et tal, gerne vil have skrevet navnet på ugedagen:
<html> <head> <title>Løkker</title> </head> <body> <% Select Case Weekday(Now,VbMonday) Case 1 Response.Write "Mandag" Case 2 Response.Write "Tirsdag" Case 3 Response.Write "Onsdag" Case 4 Response.Write "Torsdag" Case 5 Response.Write "Fredag" Case 6 Response.Write "Lørdag" Case Else Response.Write "Søndag" End Select %> </body> </html>
Ofte kan
Select Case være et godt alternativ til
If-Then-Else - hvilken du vil anvende i en konkret situation bør afhænge af hvilken metode du finder mest logisk og overskuelig. At lave sine scripts logiske og overskuelige kan være en stor udfordring.
I den næste lektion vil vi kigge på hvordan du kan indsætte kommentarer i dine scripts for at forklare hvordan de virker. Gode kommentarer kan være altafgørende hvis der på et senere tidspunkt skal rettes i koderne - enten af dig selv - eller af en anden.