Microsoft®
Visual Basic® Scripting Edition
Έλεγχος ροής προγράμματος.
|
Δήλωση If…Then…Else
Η δήλωσηIf…Then…Elseχρησιμοποιείται για να εκτιμήσουμε αν μια υπόθεση είναι Αληθής (True), ή Ψευδής (False) και μετά να προσδιορίσουμε μία ή περισσότερες δηλώσεις για να τρέξουν ανάλογα με το αποτέλεσμα. Συνήθως η υπόθεση είναι μία έκφραση που χρησιμοποιεί τη σύγκριση κάποιων τελεστών για να συγκρίνει μία αξία ή μία μεταβλητή, με μια άλλη. Για πληροφορίες σχετικά με τη σύγκριση τελεστών δείτε τη Σύγκριση Τελεστών. Τη δήλωση If…Then…Else μπορούμε να τη φωλιάσουμε σε όσα επίπεδα χρειαζόμαστε.
ΔήλωσηIf…Then…
Αν θέλουμε να τρέξουμε μόνο μια δήλωση
όταν μια συνθήκη είναι Αληθής, μπορούμε να χρησιμοποιήσουμε την απλή σύνταξη
του If…Then…Else. Το
επόμενο παράδειγμα δείχνει την απλή σύνταξη. Παρατηρήστε ότι το παράδειγμα
δεν περιέχει την λέξη κλειδί Else.
Sub FixDate ()
Dim myDate
MyDate= #2/13/95 #
If myDate< Now Then myDate = Now
End Sub.
Αν θέλουμε να τρέξουμε περισσότερες
από μία σειρές κώδικα, πρέπει να χρησιμοποιήσουμε την πολλαπλή σύνταξη.
Αυτή η σύνταξη περιέχει τη δήλωση End If,όπως
δείχνει το επόμενο παράδειγμα.
Sub AlterUser (value)
If value = 0 Then
AlterLabel.ForeColor = vbRed
AlterLabel.Font.Bold = True
AlterLabel.Font.Italic = True
End If
End Sub
Τρέχοντας πλήρη If…Then…Else
Μπορούμε να χρησιμοποιήσουμε τη δήλωση
If…Then…Elseγια
να καθορίσουμε δύο μπλοκ
από εκτελέσιμες δηλώσεις. Το ένα μπλοκ τρέχει αν η συνθήκη είναι Αληθής
και το άλλο όταν είναι ψευδής.
Sub AlterUser (value)
If value = 0 Then
AlterLabel.ForeColor = vbRed
AlterLabel.Font.Bold = True
AlterLabel.Font.Italic = True
Else
AlterLabel.ForeColor = vbBlack
AlterLabel.Font.Bold = False
AlterLabel.Font.Italic = False
End If
End Sub
Χρησιμοποιώντας Βρόχους για επαναλαμβανόμενο κώδικα.
Οι βρόχοι μας επιτρέπουν να τρέχουμε μία ομάδα δηλώσεων επαναλαμβανόμενα. Μερικοί βρόχοι επαναλαμβάνουν δηλώσεις μέχρι η συνθήκη να γίνει Ψευδής, ενώ άλλοι μέχρι να γίνει Αληθής. Επίσης υπάρχουν βρόχοι που επαναλαμβάνουν δηλώσεις για συγκεκριμένο αριθμό επαναλήψεων.
Οι ακόλουθοι βρόχοι είναι διαθέσιμοι στο VBScript.
Δήλωση Do… Loop
Μπορούμε να χρησιμοποιήσουμε την
δήλωση Do… Loop για
να τρέξουμε ένα μπλοκ δηλώσεων σε ακαθόριστο αριθμό επαναλήψεων. Οι δηλώσεις
επαναλαμβάνονται όσο μια συνθήκη είναι Αληθής ή μέχρι να γίνει Αληθής.
Δηλώσεις που επαναλαμβάνονται
όσο η συνθήκη είναι Αληθής.
Σε μια δήλωση Do… Loop
, χρησιμοποιούμε τη λέξη κλειδί While ,
για να ελέγξουμε τη συνθήκη. Μπορούμε να ελέγξουμε τη συνθήκη πριν μπούμε
στο βρόχο (όπως στο πρώτο παράδειγμα), ή μπορούμε να την ελέγξουμε αφού
ο βρόχος έχει εκτελεστεί τουλάχιστον μια φορά (δεύτερο παράδειγμα). Στη
διαδικασία ChkFirstWhile, αν το myNum είχε οριστεί 9 αντί για 20, η δηλώσεις
μέσα στο βρόχο Δε θα έτρεχαν ποτέ. Στη διαδικασία ChkLastWhile, οι δηλώσεις
θα έτρεχαν μόνο μια φορά γιατί η συνθήκη είναι ήδη Ψευδής.
Sub ChkFirstWhile ()
Dim counter, myNum
Counter = 0
myNum = 20
Do While myNum 10
myNum = myNum – 1
counter = counter +1
Loop
MsgBox “ The loop made “ & counter & “ repetitions.”
End Sub
Sub ChkLastWhile ()
Dim counter, myNum
Counter = 0
myNum = 9
Do
myNum
= myNum – 1
counter = counter +1
Loop While myNum 10
MsgBox “ The loop made “ & counter & “ repetitions.”
End Sub
Δηλώσεις που επαναλαμβάνονται
μέχρι η συνθήκη να γίνει Αληθής.
Μπορούμε να χρησιμοποιήσουμε τη
λέξη κλειδί Until,
με δύο τρόπους για να ελέγξουμε τη συνθήκη σε μια δήλωση Do…Loop.
Μπορούμε να ελέγξουμε τη συνθήκη πριν μπούμε στο βρόχο (όπως στο πρώτο
παράδειγμα ), ή μπορούμε να την ελέγξουμε αφού ο βρόχος έχει εκτελεστεί
τουλάχιστον μια φορά (δεύτερο παράδειγμα). Όσο η συνθήκη είναι Ψευδής ,
ο βρόχος πραγματοποιείται.
Sub ChkFirstWhile ()
Dim counter, myNum
Counter = 0
myNum = 20
Do Until myNum = 10
myNum = myNum – 1
counter = counter +1
Loop
MsgBox “ The loop made “ & counter & “ repetitions.”
End Sub
Sub ChkLastWhile ()
Dim counter, myNum
Counter = 0
myNum = 1
Do
myNum = myNum + 1
counter
= counter +1
Loop Until myNum =10
MsgBox “ The loop made “ & counter & “ repetitions.”
End Sub
Βγαίνοντας από μια
δήλωση Do…Loop μέσα από το βρόχο.
Μπορούμε να βγούμε από ένα Do…Loop
με το να χρησιμοποιήσουμε τη δήλωση Exit Do.
Επειδη συνήθως θέλουμε να βγούμε μόνο σε συγκεκριμένες περιπτώσεις, όπως
για να αποφύγουμε έναν ατελείωτο βρόχο, πρέπει να χρησιμοποιούμε τη δήλωση
Exit
Do σε ένα μπλοκ δηλώσεων True μιας
δήλωσης If…Then…Else.
Αν η συνθήκη είναι False τότε ο βρόχος τρέχει κανονικά.
Στο παράδειγμα η myNum, παίρνει μια
τιμή που δημιουργεί έναν ατελείωτο βρόχο. Η δήλωση If…Then…Else
ελέγχει για αυτό τη συνθήκη εμποδίζοντας έτσι την ατελείωτη επανάληψη.
Sub Exit Example ()
Dim counter, myNum
Counter = 0
myNum = 9
Do Until myNum=10
myNum = myNum - 1
counter = counter +1
If myNum<10 Then Exit Do
Loop
MsgBox “ The loop made “
& counter & “ repetitions.”
End Sub
Χρησιμοποιώντας
τη While…Wend
Η δήλωση While…Wend
δίνεται από το VBScript για αυτούς που είναι γνώστες της χρήσης της. Επειδή
όμως η While…Wend έχει έλλειψη ελαστικότητας, συνιστάται η χρησιμοποίηση
της Do…Loop.
Χρησιμοποιώντας
τη For…Next
Χρησιμοποιούμε τη δήλωση For…Next
για να τρέξουμε ένα μπλοκ δηλώσεων σε συγκεκριμένο αριθμό επαναλήψεων.
Στους βρόχους , χρησιμοποιούμε μια μεταβλητή μετρητή που η τιμή του αυξάνεται
ή μειώνεται με κάθε επανάληψη του βρόχου. Για παράδειγμα, η ακόλουθη διαδικασία
επιφέρει στη διαδικασία MyProc
να εκτελεστεί 50 φορές. Η δήλωση For καθορίζει
τη μεταβλητή μετρητή Χ και την αρχική και την τελική της τιμή. Η δήλωση
Next
αυξάνει το μετρητή κατά 1.
Sub DoMyProc50Times ()
Dim x
For x=1 To 50
MyProc
Next
End Sub
Χρησιμοποιώντας τη λέξη κλειδί Step,
μπορούμε να αυξήσουμε ή να μειώσουμε τη μεταβλητή μετρητή με την τιμή που
καθορίζουμε. Στο παράδειγμα η τιμή του μετρητή j αυξάνεται κατά 2 κάθε
φορά που επαναλαμβάνεται ο βρόχος. Όταν ο βρόχος τελειώνει, το Σύνολο είναι
το άθροισμα 2,4,6,8, και 10.
Sub TwosTotal()
Dim j, total
For j=2 To 10 Step 2
Total = total + j
Next
MsgBox” The total is” & total
End Sub
Για να μειώσουμε την τιμή του μετρητή,
χρησιμοποιούμε αρνητική τιμή στο Step.
Για να το κάνουμε αυτό πρέπει να καθορίσουμε μια τελική τιμή μικρότερη
από την αρχική τιμή. Στο παράδειγμα ο μετρητής myNum μειώνεται κατά 2 κάθε
φορά που επαναλαμβάνεται ο βρόχος. Όταν ο βρόχος τερματιστεί, το Σύνολο
είναι το άθροισμα 16,14,12,10,8,6,4, και 2.
Sub NewTotal()
Dim myNum, total
For myNum=16 To 2 Step -2
Total = total + myNum
Next
MsgBox” The total is” & total
End Sub
Μπορούμε να βγούμε από τη δήλωση
For…Next
πριν ο μετρητής πάρει την τελική του τιμή, χρησιμοποιώντας τη δήλωση Exit
For. Επειδή συνήθως θέλουμε να βγούμε
σε συγκεκριμένες περιπτώσεις, όπως όταν γίνεται λάθος, πρέπει να χρησιμοποιούμε
τη δήλωση Exit For όταν
είναι Αληθής το μπλοκ των δηλώσεων του If…Then…Else.
Σε κατάσταση Ψευδής, ο βρόχος τρέχει κανονικά.
© 1997 Microsoft Corporation. All rights reserved.