ΚΕΦΑΛΑΙΟ 3 – ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΤΗΣ VISUAL BASIC

 

Στο κεφάλαιο αυτό θα αναφερθούν τα βασικά στοιχεία προγραμματισμού της 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 : επιστρέφει το ημίτονο μιας γωνίας

-         Cos : επιστρέφει το συνημίτονο μιας γωνίας

-         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