|
Dit artikel is gepubliceerd op woensdag 28 april 2010 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
In volgend voorbeeld kunnen centimeters naar inches en inches naar centimeters worden omgezet. Visual Basic Broncode Module Example1
Sub Main()
Dim menu As Char
Dim value As Decimal
Console.Write("1 centimetres -> inches / 2 - inches -> centimetres : ")
menu = Console.ReadLine()
Do Until menu = "1"c OrElse menu = "2"c
Console.WriteLine("An error occurred, please try again.")
Console.Write("1 centimetres -> inches / 2 - inches -> centimetres : ")
menu = Console.ReadLine()
Loop
Console.Write("Value : ")
value = Console.ReadLine()
Do Until value > 0
Console.WriteLine("An error occurred, please try again.")
Console.Write("Value : ")
value = Console.ReadLine()
Loop
If menu = "1"c Then
Console.WriteLine(value & " centimetres is " & value * 0.3937 & " inches")
Else
Console.WriteLine(value & " inches is " & value * 2.54 & " centimetres")
End If
Console.ReadLine()
End Sub
End ModuleDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
Visual Basic Output 1 centimetre -> inches / 2 - inches -> centimetres : 3
An error occurred, please try again.
1 centimetres -> inches / 2 - inches -> centimetres : 4
An error occurred, please try again.
1 centimetres -> inches / 2 - inches -> centimetres : 1
Value : -5
An error occurred, please try again.
Value : -10
An error occurred, please try again.
Value : 10
10 centimetres is 3,937 inches Indien een foutieve menukeuze wordt gemaakt, of een waarde wordt ingevoerd kleiner of gelijk aan nul zal hetzelfde gebeuren. In beide situaties zal een foutmelding worden gegeven.
Om te vermijden meerdere keren dezelfde instructies te coderen in een programma, kan men gebruik maken van een "procedure" ( ook wel "subroutine" of "function" genoemd ). 8.1.1. Wat zijn Procedures ?Procedures komen goed van pas wanneer bepaalde algoritmes meermaals gebruikt worden in een programma.
Het herhaalde algoritme kan één keer gedefinieerd worden in een subroutine, en meerdere keren aangeroepen worden wanneer nodig.
De Sub Main() ... End Sub die in bovenstaand voorbeeld wordt gebruikt is ook een procedure. De Main procedure is degene die gestart wordt bij het uitvoeren van een programma.
Zoals de definitie van deze Main procedure verduidelijkt start een routine met het keyword Sub, gevolgd door de identifier van deze procedure, en wordt deze procedure afgesloten aan de hand van de keywords End Sub.
In volgend voorbeeld zal procedure ShowError gebruikt worden om de herhaalde instructies ( die verantwoordelijk zijn voor het tonen van de foutmelding ) in te definiëren. Telkens wanneer deze foutmelding er moet komen zal deze routine worden aangeroepen. Visual Basic Broncode Module Example2
Sub Main()
Dim menu As Char
Dim value As Decimal
Console.Write("1 centimetres -> inches / 2 - inches -> centimetres : ")
menu = Console.ReadLine()
Do Until menu = "1"c OrElse menu = "2"c
ShowError()
Console.Write("1 centimetres -> inches / 2 - inches -> centimetres : ")
menu = Console.ReadLine()
Loop
Console.Write("Value : ")
value = Console.ReadLine()
Do Until value > 0
ShowError()
Console.Write("Value : ")
value = Console.ReadLine()
Loop
If menu = "1"c Then
Console.WriteLine(value & " centimetres is " & value * 0.3937 & " inches")
Else
Console.WriteLine(value & " inches is " & value * 2.54 & " centimetres")
End If
Console.ReadLine()
End Sub
Sub ShowError()
Console.WriteLine("An error occurred, please try again.")
End Sub
End ModuleDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
Visual Basic Output 1 centimetres -> inches / 2 - inches -> centimetres : 3
An error occurred, please try again.
1 centimetres -> inches / 2 - inches -> centimetres : 4
An error occurred, please try again.
1 centimetres -> inches / 2 - inches -> centimetres : 1
Value : -5
An error occurred, please try again.
Value : -10
An error occurred, please try again.
Value : 10
10 centimetres is 3,937 inches De volgorde waarin procedures worden gedefinieerd is willekeurig. Hier wordt Main gedefinieerd voor ShowError, maar dit kon ook omgekeerd.
Een aanroep ( ook "call" genoemd ) naar een routine kan door de identifier van deze procedure te gebruiken. De haakjes na de identifier worden verderop verklaard.
Probeer voor procedures altijd een identifier uit te kiezen die zo duidelijk mogelijk weergeeft wat de procedure zal doen. ShowError toont een foutmelding. Onthoud ook dat elke routine een unieke identifier moet hebben binnen de module waarin deze is gedefinieerd. Er zou in de module Example2 geen tweede procedure met de naam Main of ShowError kunnen worden gedefinieerd.
Op het moment dat een aangeroepen procedure beëindigd is, zal worden verdergegaan met de instructies die na de call zijn opgenomen in de aanroepende procedure.
Indien een programma veel procedures bevat, waarbij vele van deze procedures ander procedures aanroepen, kan het soms onduidelijk zijn hoe je op een bepaald moment tijdens uitvoering in een bepaalde procedure bent terecht gekomen. Een callstack debug tool kan dan helpen om hierin een overzicht te verkrijgen. Visual Studio : Het kan interessant zijn om op dit moment eens instructie voor instructie door de code te stappen terwijl je de "callstack" debug tool in het oog houdt. Deze debug tool zou beschikbaar moeten zijn, indien je gebruik maakt van een geavanceerde IDE ( zoals Visual Studio ). Op de callstack staat oorspronkelijk slecht 1 entry ( Main ), maar deze callstack zal groeien bij het binnengaan van de procedure ShowError. Op het moment dat ShowError beëindigd is zal ook de gerelateerde call van de stack worden gehaald.
Dit artikel is gepubliceerd op woensdag 28 april 2010 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
Visual Basic 2008 & 2010 Boeken
Berichten
|