Στο κεφάλαιο αυτό θα
αναφερθούν τα βασικά στοιχεία προγραμματισμού της Visual Basic :
οι μεταβλητές, οι σταθερές και η εμβέλειά τους, οι τύποι δεδομένων, οι τελεστές
για τις διάφορες πράξεις καθώς και διάφορες έτοιμες συναρτήσεις, οι δομές
ελέγχου και οι δομές επανάληψης.
3.1
Μεταβλητές
Μία μεταβλητή (variable)
είναι το όνομα μιας θέσης μνήμης, μέσα στην οποία αποθηκεύεται μια πληροφορία
που θα χρειαστούμε σε μια εφαρμογή. Η τιμή της μεταβλητής, όπως δηλώνει και το
όνομά της, μπορεί να μεταβληθεί κατά τη διάρκεια εκτέλεσης της εφαρμογής. Μία
μεταβλητή έχει ένα όνομα (Name) και ένα τύπο δεδομένων (Data Type).
Το όνομα της μεταβλητής
είναι μία λέξη που χρησιμοποιούμε όταν αναφερόμαστε στην μεταβλητή. Μπορεί να
αποτελείται από 1 μέχρι 40 χαρακτήρες που μπορεί να είναι είτε γράμματα, είτε
αριθμοί, είτε ο χαρακτήρας υπογράμμισης ( _ ). Δεν μπορεί όμως να αρχίζει από
αριθμό, ενώ δεν μπορεί να είναι ίδιο με μία δεσμευμένη λέξη της Visual Basic. Επιπλέον, το όνομα της μεταβλητής μπορεί να έχει
σαν τελευταίο χαρακτήρα ένα σύμβολο το οποίο δηλώνει τον τύπο δεδομένων
της μεταβλητής.
Ο τύπος δεδομένων μιας
μεταβλητής χαρακτηρίζει το είδος των πληροφοριών που μπορούμε να δώσουμε σαν
τιμή στη μεταβλητή. Έχει επίσης επίδραση στο μέγεθος της μνήμης που
χρησιμοποιείται από τη Visual Basic
για να αποθηκεύσει την τιμή της μεταβλητής. Υπάρχουν επτά βασικοί τύποι
δεδομένων στη Visual Basic, οι τύποι Integer,
Long, Single, Double, Currency, String και Variant.
Ο πίνακας που ακολουθεί
δείχνει για κάθε τύπο τις τιμές που μπορεί να πάρει, το μέγεθος μνήμης που
καταλαμβάνει και τον χαρακτήρα κατάληξης που μπορούμε να χρησιμοποιήσουμε στα
ονόματα των μεταβλητών.
Τύπος |
Είδος δεδομένων |
Κατάληξη |
Μέγεθος |
Εύρος τιμών |
Integer |
Αριθμ.
ακέραιο |
% |
2
bytes |
-32.768
ως 32.767 |
Long |
Αριθμ.
ακέραιο |
& |
4
bytes |
-2.147.483.648
ως 2.147.483.647 |
Single |
Αριθμ.
πραγματικό |
! |
4
bytes |
±1,4x10-45
ως ±3,4x1038 |
Double |
Αριθμ.
πραγματικό |
# |
8
bytes |
±4,94x10-324
ως ±1,79x10308 |
Currency |
Αριθμ.
πραγματικό |
@ |
8 bytes |
-922.337.203.685.477,5808
ως 922.337.203.685.477,5807 |
String |
Κείμενο |
$ |
1
byte ανά χαρακτήρα και μέχρι 65535 bytes |
0
ως 65535 χαρακτήρες |
Variant |
Προσαρμοζόμενο |
Καμιά |
Οποιοδήποτε
από
τα παραπάνω |
Οτιδήποτε
από τα παραπάνω |
Ειδική αναφορά πρέπει να
γίνει στον τύπο variant. Σ’ αυτόν τον τύπο ανήκουν μεταβλητές που δεν έχουν
δηλωθεί τι τύπου είναι. Η Visual Basic
δέχεται τέτοιες μεταβλητές, αλλά στην πρώτη απόπειρα να γραφτούν δεδομένα στη
μεταβλητή, διαλέγει αυτόματα τον πιο κατάλληλο τύπο δεδομένων, δεσμεύοντας τον
μικρότερο δυνατό χώρο. Από εκεί και πέρα δεν γίνεται καμιά αλλαγή στον τύπο
δεδομένων της μεταβλητής
Οι μεταβλητές συνήθως
δηλώνονται από τον προγραμματιστή στην αρχή του προγράμματος (ή της διαδικασίας
που θα τις χρησιμοποιήσει). Η δήλωση γίνεται με τον ακόλουθο τρόπο :
(Dim|Static|Global) όνομα_μεταβλητής [As τύπος
δεδομένων]
Δηλαδή γράφουμε μία από τις
δεσμευμένες λέξεις Dim, Static, Global, το όνομα της μεταβλητής
και προαιρετικά τη λέξη As και τον τύπο της
μεταβλητής, π.χ.:
Dim num1 As Integer
Dim num2&
Static
temp1
Global MyName As
String
Dim money1 As Currency, money2 As
Currency
Μπορούμε να δηλώσουμε
περισσότερες από μία μεταβλητές σε κάθε δήλωση Dim, αλλά πρέπει να αναφέρουμε
τον τύπο για την κάθε μία ξεχωριστά.
Εάν παραλείψουμε να
δηλώσουμε τον τύπο της μεταβλητής, τότε ο τύπος που της δίνεται είναι ο variant,
και όπως είπαμε παραπάνω η δέσμευση της μνήμης για τη μεταβλητή γίνεται κατά
την πρώτη εκχώρηση τιμής σ’ αυτή. Εξαίρεση αποτελούν οι μεταβλητές που
περιέχουν στο τέλος του ονόματός τους χαρακτήρα που δηλώνει τον τύπο τους. Στο
προηγούμενο παράδειγμα, η μεταβλητή num2& είναι τύπου long και
όχι variant.
Γενικά θεωρείται καλή
προγραμματιστική πρακτική να αποφεύγουμε τον τύπο variant και να δηλώνουμε όλες τις
μεταβλητές στην αρχή του κώδικά μας.
Οι λέξεις Static
και Global στην αρχή της δήλωσης αφορούν την εμβέλεια των μεταβλητών. Μία
μεταβλητή που έχει οριστεί με τη λέξη Dim έχει εμβέλεια μέσα στη
διαδικασία ή τη φόρμα που ορίστηκε, ενώ μία που έχει δηλωθεί σαν Global,
έχει εμβέλεια σε όλο το έργο, δηλαδή μπορεί να χρησιμοποιηθεί από οποιαδήποτε
φόρμα και οποιοδήποτε κομμάτι κώδικα στο έργο μας. Η δήλωση μιας μεταβλητής σαν
static έχει σαν αποτέλεσμα η μεταβλητή να διατηρεί την τιμή της ανάμεσα σε
διαδοχικές κλήσεις της διαδικασίας όπου έχει δηλωθεί.
Όταν δηλωθεί μία μεταβλητή,
η Visual Basic αυτομάτως της δίνει την
τιμή 0, εκτός αν είναι string οπότε της δίνει την τιμή
του κενού αλφαριθμητικού (””).
3.2
Σταθερές
Αν ξέρουμε ότι μια μεταβλητή θα έχει την ίδια τιμή σε όλη τη διάρκεια εκτέλεσης της εφαρμογής, τότε μπορούμε να τη δηλώσουμε σαν σταθερά. Η δήλωση της σταθεράς γίνεται με τη χρήση της δεσμευμένης λέξης const:
Const όνομα_σταθεράς
= τιμή
Π.χ. Const Pi=3.14159. Δεν χρειάζεται να δηλώσουμε τύπο δεδομένων για μια σταθερά. Η Visual Basic αυτομάτως επιλέγει τον πιο κατάλληλο και οικονομικό σε μνήμη τύπο για την τιμή που έχουμε δώσει. Η τιμή μιας σταθεράς δεν μπορεί να αλλάξει κατά τη διάρκεια εκτέλεσης του προγράμματος.
3.3
Πίνακες
Οι δηλώσεις πινάκων γίνονται με τον ίδιο τρόπο, μόνο που δηλώνουμε μέσα σε παρενθέσεις τις διαστάσεις του πίνακα και το πλήθος στοιχείων σε κάθε διάσταση :
Dim όνομα_πίνακα (πλήθος[,πλήθος…] As τύπος_δεδομένων
Π.χ.
Dim Pinakas
(0 to 9, 0 to 4) As integer
Dim
Names (0 to 99) As String
Ο πρώτος πίνακας είναι δύο διαστάσεων (10 επί 5) και περιέχει ακεραίους, ενώ ο δεύτερος είναι μονοδιάστατος και περιέχει 100 στοιχεία καιμένου.
3.4
Τύποι καθορισμένοι από το χρήστη (User defined)
Αν
και οι τύποι δεδομένων που παρέχει η Visual Basic
συνήθως αρκούν, πολλές φορές μπορούμε να ομαδοποιήσουμε δεδομένα και να
γλιτώσουμε έτσι άσκοπη πληκτρολόγηση. Μπορούμε να ομαδοποιήσουμε δεδομένα σε
έναν καινούριο τύπο χρησιμοποιώντας τη δήλωση type:
Type όνομα_τύπου
(δήλωση
μεταβλητής)
(δήλωση μεταβλητής)
…
End Type
Για
παράδειγμα, αν θέλουμε να κρατήσουμε στοιχεία για τρεις μαθητές, μπορούμε να
ορίσουμε τον καινούριο τύπο Mathitis και να τον χρησιμοποιήσουμε
στη συνέχεια:
Type mathitis
Dim Name As String
Dim Surname As String
Dim Tmima As String
Dim vathmoi(0 to 2)
As Integer
End Type
Dim mathitis1 As mathitis, mathitis2 As mathitis,
mathitis3 As Mathitis
Οι εσωτερικές μεταβλητές των μεταβλητών τύπου μαθητή είναι διαθέσιμες από το όνομα της εξωτερικής μεταβλητής με τη χρήση της τελείας, π.χ.:
Mathitis1.Name=”George”
Mathitis2.vathmoi(1)=19
3.5 Τελεστές
Τελεστές καλούμε τα διάφορα σύμβολα που χρησιμοποιούμε για να πραγματοποιήσουμε πράξεις ή εντολές μεταξύ δεδομένων και μεταβλητών.
§ Τελεστής εκχώρησης (=).
Τον χρησιμοποιούμε για να δώσουμε τιμή σε μια μεταβλητή ή μια ιδιότητα ενός αντικειμένου. Στο αριστερό μέρος του τελεστή γράφεται η μεταβλητή και στο δεξιό η τιμή ή μια παράσταση που – υπολογιζόμενη – δίνει την τιμή που θα δωθεί στη μεταβλητή. Τόσο η μεταβλητή όσο και η τιμή πρέπει να είναι του ίδιου τύπου, αλλιώς η Visual Basic θα ανταποκριθεί με μήνυμα λάθους. Παραδείγματα :
Embadon
= bash * ypsos
MO =
(num1+num2)/3
Form1.Height
= 1250
Name
= “Bono”
§ Αριθμητικοί τελεστές
Οι αριθμητικοί τελεστές
χρησιμοποιούνται για αριθμητικές πράξεις.
+ |
Πρόσθεση |
- |
Αφαίρεση |
* |
Πολλαπλασιασμός |
^ |
Ύψωση σε δύναμη |
/ |
Διαίρεση |
\ |
Ακέραια διαίρεση |
Mod |
Υπόλοιπο διαίρεσης |
Χρησιμοποιώντας
παρενθέσεις (προσοχή: μόνο παρενθέσεις και όχι και αγκύλες όπως στα μαθηματικά)
μπορούμε να συνθέσουμε πολύπλοκες αριθμητικές παραστάσεις.
Η σειρά με την οποία γίνονται οι πράξεις σε μια αριθμητική παράσταση εξαρτάται
από την προτεραιότητα των τελεστών που φαίνεται παρακάτω :
1.
() Παρενθέσεις
2.
^ Δυνάμεις
3.
* / Πολλαπλασιασμός, Διαίρεση
4.
\ Ακέραια
διαίρεση
5.
Mod Υπόλοιπο
6.
+, - Πρόσθεση,
Αφαίρεση
Όταν
παρουσιάζονται σε μια αριθμητική παράσταση δύο τελεστές ίσης προτεραιότητας, η Visual Basic εκτελεί τις πράξεις από
αριστερά προς τα δεξιά της παράστασης.
§ Συνένωση αλφαριθμητικών
Ο τελεστής ”&” εκτελεί συνένωση (concatenation) μεταξύ αλφαριθμητικών. Π.χ. η εντολή
Α=”Gabriel
” & ”Garcia ” & ”Marques”
Έχει σαν αποτέλεσμα η μεταβλητή Α να πάρει την τιμή ”Gabriel Garcia Marques”. Την ίδια ακριβώς λειτουργία μπορεί να εκτελέσει για τα αλφαριθμητικά και ο τελεστής ”+”, αλλά δεν συνιστάται για να μη δημιουργηθεί σύγχυση σε κάποιον που διαβάζει το πρόγραμμά μας.
§ Τελεστές σύγκρισης
Με τους τελεστές σύγκρισης εκτελούμε συγκρίσεις ανάμεσα σε ποσότητες :
= |
Ισότητα |
> |
Μεγαλύτερο |
>= |
Μεγαλύτερο ή ίσο |
< |
Μικρότερο |
<= |
Μικρότερο ή ίσο |
<> |
Διάφορο |
Μία παράσταση με τελεστές σύγκρισης επιστρέφει μία από τις τιμές True (Αληθές) ή False (Ψευδές). Στην πραγματικότητα, οι True και False είναι σταθερές και οι τιμές τους είναι True = -1 και False = 0. Έτσι η εντολή
Α
= 4 < 3
έχει σαν αποτέλεσμα η τιμή της μεταβλητής Α να είναι 0 (False).
To ότι ο τελεστής ισότητας είναι ίδιος με τον τελεστή εκχώρησης δεν πρέπει να δημιουργεί σύγχυση. Μόνο το πρώτο ”=” σε μια παράσταση θεωρείται τελεστής εκχώρησης. Για παράδειγμα, η εντολή
Test = A = B
έχει σαν αποτέλεσμα να
ελεγχθεί η ισότητα των μεταβλητών Α και Β και να εκχωρηθεί στην μεταβλητή Test η τιμή True ή False.
§ Λογικοί τελεστές
Οι λογικοί τελεστές χρησιμοποιούνται για πράξεις
ανάμεσα σε παραστάσεις ή μεταβλητές των οποίων οι τιμές είναι True ή False. Οι λογικοί τελεστές χρησιμεύουν
για να φτιάχνουμε πολύπλοκες λογικές συνθήκες.
AND |
Σύζευξη – Λογικό ΚΑΙ |
OR |
Διάζευξη – Λογικό Ή |
NOT |
Άρνηση – Λογικό ΟΧΙ |
XOR |
Αποκλειστική διάζευξη – Λογικό ΕΙΤΕ |
EQV |
Ισοδυναμία – Λογικό ΑΝ ΚΑΙ ΜΟΝΟ ΑΝ |
IMP |
Συνεπαγωγή – Λογικό ΑΡΑ |
Οι πίνακες αλήθειας που
ακολουθούν δείχνουν τις τιμές που δίνουν οι λογικοί τελεστές μεταξύ δύο
μεταβλητών True-False σε κάθε περίπτωση :
ΠΙΝΑΚΑΣ ΑΛΗΘΕΙΑΣ AND
Μεταβλητή 1 |
AND |
Μεταβλητή 2 |
Αποτέλεσμα |
T |
AND |
T |
T |
T |
AND |
F |
F |
F |
AND |
T |
F |
F |
AND |
F |
F |
ΠΙΝΑΚΑΣ ΑΛΗΘΕΙΑΣ OR
Μεταβλητή 1 |
OR |
Μεταβλητή 2 |
Αποτέλεσμα |
T |
OR |
T |
T |
T |
OR |
F |
T |
F |
OR |
T |
T |
F |
OR |
F |
F |
ΠΙΝΑΚΑΣ ΑΛΗΘΕΙΑΣ NOT
Μεταβλητή |
NOT |
Αποτέλεσμα |
T |
NOT |
F |
F |
NOT |
T |
ΠΙΝΑΚΑΣ ΑΛΗΘΕΙΑΣ XOR
Μεταβλητή 1 |
XOR |
Μεταβλητή 2 |
Αποτέλεσμα |
T |
XOR |
T |
F |
T |
XOR |
F |
T |
F |
XOR |
T |
T |
F |
XOR |
F |
F |
ΠΙΝΑΚΑΣ ΑΛΗΘΕΙΑΣ EQV
Μεταβλητή 1 |
EQV |
Μεταβλητή 2 |
Αποτέλεσμα |
T |
EQV |
T |
T |
T |
EQV |
F |
F |
F |
EQV |
T |
F |
F |
EQV |
F |
T |
ΠΙΝΑΚΑΣ ΑΛΗΘΕΙΑΣ IMP
Μεταβλητή 1 |
IMP |
Μεταβλητή 2 |
Αποτέλεσμα |
T |
IMP |
T |
T |
T |
IMP |
F |
F |
F |
IMP |
T |
T |
F |
IMP |
F |
T |
3.6
Έτοιμες συναρτήσεις
Οι
συναρτήσεις (functions) σαν εργαλείο προγραμματισμού της Visual Basic, θα συζητηθούν αναλυτικά στο κεφάλαιο 4, μαζί με
τις διαδικασίες (procedures). Εκεί θα δούμε πώς ο προγραμματιστής μπορεί να
ορίζει δικές του συναρτήσεις και να τις χρησιμοποιεί για να φτιάχνει κώδικα
δομημένο και ευανάγνωστο. Σ’ αυτό το σημείο θα αναφερθούν μόνο κάποιες έτοιμες
συναρτήσεις της Visual Basic, που μπορούν να
χρησιμοποιηθούν συμπληρωματικά με τους τελεστές που αναφέρθηκαν παραπάνω για
πράξεις ανάμεσα σε αριθμούς ή αλφαριθμητικά.
Η
χρήση μιας συνάρτησης γίνεται γράφοντας το όνομά της και δίνοντας τυχόν
ορίσματα μέσα σε παρενθέσεις. Τονίζεται ότι μία συνάρτηση πάντα επιστρέφει μία
τιμή, επομένως η χρήση της γίνεται πάντα μέσα σε μια άλλη εντολή, όπως η εντολή
εκχώρησης, ή μία αριθμητική παράσταση όπου η τιμή που επιστρέφει
χρησιμοποιείται αμέσως.
§
Συναρτήσεις για αριθμούς
-
Abs : επιστρέφει την απόλυτη
τιμή ενός αριθμού
-
Int : επιστρέφει το ακέραιο
μέρος ανός αριθμού
-
Sqr : επιστρέφει την
τετραγωνική ρίζα ενός αριθμού
-
Rnd : επιστρέφει έναν
ψευδοτυχαίο αριθμό μεταξύ 0 και 1
-
Sin : επιστρέφει το ημίτονο
μιας γωνίας
-
-
Str : μετατρέπει τον αριθμό σε
αλφαριθμητικό
-
Chr : επιστρέφει τον χαρακτήρα
που αντιστοιχεί σε ένα κωδικό ASCII
§
Συναρτήσεις για αλφαριθμητικά
-
Asc : επιστρέφει τον κωδικό ASCII
του χαρακτήρα
-
Len : επιστρέφει το μήκος του
αλφαριθμητικού
-
Mid : επιστρέφει κεντρικούς
χαρακτήρες του αλφαριθμητικού
-
Val : μετατρέπει αλφαριθμητικά
σε αριθμούς
-
String : επαναλαμβάνει κάποιο
χαρακτήρα
-
Left : επιστρέφει χαρακτήρες από
τα αριστερά του αλφαριθμητικού
-
Right : επιστρέφει χαρακτήρες από
τα δεξιά του αλφαριθμητικού
-
Instr : αναζήτηση μέσα σε
αλφαριθμητικό
-
Ltrim : Αποκόπτει τα κενά από αριστερά
του αλφαριθμητικού
-
Rtrim : Αποκόπτει τα κενά από
δεξιά του αλφαριθμητικού
-
Trim : Αποκόπτει τα κενά από
αριστερά και δεξιά του αλφαριθμητικού
-
Ucase : επιστρέφει το
αλφαριθμητικό με κεφαλαία γράμματα
-
Lcase : επιστρέφει το
αλφαριθμητικό με πεζά γράμματα
-
StrComp : συγκρίνει δύο
αλφαριθμητικά
§
Διάφορες συναρτήσεις
-
CurDir : Επιστρέφει την τρέχουσα
διαδρομή σαν αλφαριθμητικό
-
Day : επιστρέφει την ημέρα (1
ως 31) που αντιστοιχεί σε μια ημερομηνία
-
Now : επιστρέφει την ημερομηνία
και ώρα του συστήματος
Ακολουθούν παραδείγματα για τις πιο συνηθισμένες από
τις παραπάνω συναρτήσεις :
Abs(-20) επιστρέφει
20
Sqr(16) επιστρέφει
4
Len(”Νίκος Καζαντζάκης”) επιστρέφει 17
Left(”Νίκος Καζαντζάκης”,5) επιστρέφει ”Νίκος”
Right(”Νίκος Καζαντζάκης”,4) επιστρέφει ”άκης”
Mid(”Νίκος Καζαντζάκης”,11) επιστρέφει ”ντζάκης”
Mid(”Νίκος Καζαντζάκης”,11,4) επιστρέφει ”ντζά”
Val(”5”)+Val(”6”) επιστρέφει 11
String(5, ”a”) επιστρέφει
”aaaaa”
Instr(”Νίκος Καζαντζάκης”,”ς”) επιστρέφει 5
Instr(7,”Νίκος Καζαντζάκης”,”ς”) επιστρέφει 17
3.7
Δομές ελέγχου – επανάληψης
Δομές ελέγχου και δομές
επανάληψης σε μια γλώσσα προγραμματισμού είναι oι εντολές που ελέγχουν τη
ροή του προγράμματος. Στη Visual Basic
υπάρχουν τέσσερις εντολές που πραγματοποιούν αυτή τη λειτουργία, οι IF-THEN-ELSE, SELECT CASE, FOR-NEXT, DO WHILE ή UNTIL.
§
IF … THEN … ELSE
Η δομή αυτή επιτρέπει την εκτέλεση εντολών κάτω από
τον έλεγχο μιας συνθήκης.
1η σύνταξη : IF συνθήκη THEN εντολή
2η σύνταξη : IF συνθήκη THEN
εντολές
[ELSEIF συνθήκη THEN
εντολές]
[ELSE
εντολές]
ENDIF
Η συνθήκη είναι μια
παράσταση που έχει τιμή True/False και σχηματίζεται
χρησιμοποιώντας τους τελεστές σύγκρισης ή και τους λογικούς τελεστές που έχουν
αναφερθεί.
§
SELECT CASE
Η εντολή Select case είναι παρόμοια με μια σειρά If/then/else.
Επιτρέπει την εκτέλεση υπό συνθήκη οποιασδήποτε από μια ομάδα δηλώσεων ανάλογα
με την τιμή μιας έκφρασης ελέγχου. Η τιμή ελέγχου μπορεί να είναι μία μεταβλητή
ή κάποια σύνθετη παράσταση. Η σύνταξη έχει ως εξής :
SELECT CASE τιμή_ελέγχου
CASE τιμή1
εντολές
[CASE τιμή2
εντολές]
[CASE ELSE]
εντολές]
END SELECT
Το τμήμα CASE ELSE περιέχει τις εντολές που θέλουμε να εκτελεστούν σε
περίπτωση που η τιμή ελέγχου δεν αντιστοιχεί σε καμιά από τις τιμές που
ακολουθούν στις διαδοχικές CASE και είναι προαιρετική.
Προσοχή πρέπει να δοθεί στις διάφορες τιμές που δίνουμε να είναι του ίδιου
τύπου με την τιμή ελέγχου. Επίσης, οι τιμές μπορούν στην πραγματικότητα να
είναι ομάδες τιμών όπως φαίνεται στο παρακάτω παράδειγμα :
Select case va8mos
Case 20
Epidosi=”Άριστα”
Case 17 to 19
Epidosi=”Πολύ καλά”
Case 14 to 16
Epidosi=”Καλά”
Case 10 to 13
Epidosi=”Μέτρια”
Case Is < 10 ‘Προσέξτε τη χρήση της
σύγκρισης..
Epidosi=”Άστα να πάνε”
Case else
MsgBox “Κάποιο λάθος έγινε”
End Select
§
FOR … NEXT
Η For-Next είναι μία δομή επανάληψης
που μας επιτρέπει την επανεκτέλεση ενός κομματιού κώδικα. Συνιστάται σε
περιπτώσεις που ξέρουμε από πριν τον αριθμό των επαναλήψεων που θα γίνουν.
Πραγματοποιείται με τη χρήση μιας μεταβλητής που παίζει το ρόλο μετρητή,
και συντάσσεται ως εξής :
FOR μετρητής
= αρχή TO τέλος
[STEP βήμα]
εντολές
[EXIT FOR]
NEXT μετρητής
Η
δήλωση Exit For μπορεί να χρησιμοποιηθεί
για τον πρόωρο τερματισμό των επαναλήψεων. Η τιμή του μετρητή ξεκινά από αρχή,
αυξάνεται κατά βήμα σε κάθε επανάληψη μέχρι να φτάσει στην τιμή τέλος.
Όταν η δήλωση STEP παραλείπεται, εννοείται σαν βήμα το 1. Μπορούμε να
δώσουμε και αρνητικό βήμα. Παραδείγματα :
For i=1 to 11 step 2
… ‘Η i παίρνει τις τιμές
1,3,5,7,9,11
next i
For i=100 to 0 step -10
… ‘Η i παίρνει τις τιμές
100,90,80,70,60,50,40,30,20,10,0
next i
Χρειάζεται προσοχή ώστε να μην δημιουργήσετε ένα
βρόχο που δεν τελειώνει ποτέ. Στο παρακάτω παράδειγμα, ο μετρητής i
παίρνει τιμές 1,0,-1,-2,… και η επανάληψη συνεχίζεται ατέρμονα (ή μέχρι η τιμή
του i να βγει έξω από τα όρια του τύπου που έχει δηλωθεί).
For i=1 to 100 step -1
…
next i
§
DO WHILE ή
UNTIL
Η εντολή αυτή
χρησιμοποιείται όταν θέλουμε να εκτελείται μία ομάδα εντολές όσο ισχύει μία
συνθήκη ή μέχρι να ισχύσει μία συνθήκη (χρησιμοποιούμε τις δεσμευμένες λέξεις While ή Until
αντίστοιχα). Υπάρχουν δύο τρόποι σύνταξης :
1η σύνταξη :DO WHILE ή UNTIL συνθήκη
εντολές
[EXIT DO]
εντολές
LOOP
2η σύνταξη :DO
εντολές
[EXIT DO]
εντολές
LOOP WHILE ή UNTIL συνθήκη
Η
πρώτη σύνταξη χρησιμοποιείται όταν θέλουμε να ελεγχθεί η συνθήκη πριν γίνει
καμιά επανάληψη, ενώ η δεύτερη επιτρέπει μία επανάληψη πριν ελεγχθεί η συνθήκη.
Μετά από κάθε επανάληψη, η Visual Basic
ελέγχει την τιμή της συνθήκης και αν είναι ψευδής (While) ή αληθής (Until)
τερματίζει τις επαναλήψεις. Η εντολή exit do
μπορεί να χρησιμοποιηθεί για πρόωρη έξοδο από την δομή επανάληψης.
Οι
εντολές Do-while/Until προσφέρονται για
περιπτώσεις που δεν ξέρουμε από πριν τον αριθμό τον επαναλήψεων που θα γίνουν.
Τέτοιες περιπτώσεις παρουσιάζονται για παράδειγμα, όταν επεξεργαζόμαστε αρχεία
δεδομένων ή όταν η επανάληψη εξαρτάται από δεδομένα που εισάγει ο χρήστης,
π.χ.:
Dim i as integer
i = 0
Do
i = InputBox(“Δώσε 0 για να βγεις από την επανάληψη”)
Loop Until i = 0