Microsoft® Visual Basic® Scripting Edition
Έλεγχος ροής προγράμματος.

 

| VBScript Tutorial |
| Previous | Next

 


Δήλωση 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.