Nyeste it-job

Lektion 6: Betingelser

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.

If ... Then ... Else

Den første type af betingelse vil vil kigge på er dokumentationIf-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 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 dokumentationIf-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:

Hvis måneden er større end eller lig med 3, og måneden er mindre end eller lig med 5

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.

If ... Then ... Elseif ... Else

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.

Select ... Case

En anden måde at opstille betingelser på er ved at bruge dokumentationSelect 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 dokumentationWeekday 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 dokumentationSelect Case være et godt alternativ til dokumentationIf-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.


Nyhedsbrev
Tilmeld dig HTML.dk's nyhedsbrev


Er du jobsøgende?

 Ja
 Nej
Se det foreløbige resultat når du har stemt!


Se tidligere afstemninger

 Community
Brugernavn

Adgangskode

Husk

 *  Bliv medlem her
 *  Glemt password?


Om HTML.dk | Oplysninger om ophavsret | Politik om persondata | Annoncer på HTML.dk | RSS

Valid XHTML 1.1! Valid CSS! Powered by Scannet