Επόμενο Προηγούμενο Περιεχόμενα
Αυτή την εντολή την χρησιμοποιούμε για να έχουμε την
εκτέλεση μιας ή μιας ομάδας εντολών για προκαθορισμένο
αριθμό επαναλήψεων. Η μορφή της είναι:
FOR [μεταβλητή] = [αρχική τιμή] ΤΟ [τελική τιμή] STEP [βήμα]
..
[εντολές που θα εκτελεστούν επαναλαμβανόμενα]
..
NEXT [μεταβλητή]
Θα δούμε ένα παράδειγμα χρήσης της FOR ... NEXT
1. '
2. '
3. ' ####################
4. ' ##### PROLOG #####
5. ' ####################
6. '
7. PROGRAM "progname" ' 1-8 char program/file name without .x or any .extent
8. VERSION "0.0000" ' version number - increment before saving altered program
9. '
10. ' You can stop the PDE from inserting the following PROLOG comment lines
11. ' by removing them from the prolog.xxx file in your \xb\xxx directory.
12. '
13. ' Programs contain: 1: PROLOG - no executable code - see below
14. ' 2: Entry function - start execution at 1st declared func
15. ' * = optional 3: Other functions - everything else - all other functions
16. '
17. ' The PROLOG contains (in this order):
18. ' * 1. Program name statement PROGRAM "progname"
19. ' * 2. Version number statement VERSION "0.0000"
20. ' * 3. Import library statements IMPORT "libName"
21. ' * 4. Composite type definitions TYPE <typename> ... END TYPE
22. ' 5. Internal function declarations DECLARE/INTERNAL FUNCTION Func (args)
23. ' * 6. External function declarations EXTERNAL FUNCTION FuncName (args)
24. ' * 7. Shared constant definitions $$ConstantName = literal or constant
25. ' * 8. Shared variable declarations SHARED variable
26. '
27. ' ****** Comment libraries in/out as needed *****
28. '
29. ' IMPORT "xma" ' Math library : SIN/ASIN/SINH/ASINH/LOG/EXP/SQRT...
30. ' IMPORT "xcm" ' Complex library : complex number library (trig, etc)
31. ' IMPORT "xst" ' Standard library : required by most programs
32. ' IMPORT "xgr" ' GraphicsDesigner : required by GuiDesigner programs
33. ' IMPORT "xui" ' GuiDesigner : required by GuiDesigner programs
34. '
35. DECLARE FUNCTION Entry ()
36. '
37. '
38. ' ######################
39. ' ##### Entry () #####
40. ' ######################
41. '
42. ' Programs contain:
43. ' 1. A PROLOG with type/function/constant declarations.
44. ' 2. This Entry() function where execution begins.
45. ' 3. Zero or more additional functions.
46. '
47. FUNCTION Entry ()
48. SSHORT i
49. FOR i=1 TO 20
50. PRINT i
51. NEXT i
52. END FUNCTION
53. END PROGRAM
Γραμμές 1..35 Ορισμοί
Οι γνωστές πια σε όλους γραμμές ορισμού του προγράμματος
των βιλιοθηκών και των συναρτήσεων του προράμματος.
Γραμμές 47..52 Η συνάρτηση ENTRY()
Εδώ έχουμε την συνάρτηση ENTRY()
όπου και θα
αναλύσουμε για να δούμε τον τρόπο λειτουργίας της
FOR ... NEXT
Η εκτέλεση του προγράμματος ξεκινά από την γραμμή 49 όπου
υπάρχει και η εντολή FOR
. Έχοντας ορίσει
ακριβώς παραπάνω το είδος της μεταβλητής i
μπορούμε να την χρησιμοποιήσουμε. Αναφέρω ξανά τα
παραπάνω προασμοσμένα στο παράδειγμά μας.
FOR [μεταβλητή] = [αρχική τιμή] ΤΟ [τελική τιμή] STEP [βήμα]
..
[εντολές που θα εκτελεστούν επαναλαμβανόμενα]
..
NEXT [μεταβλητή]
Όπου έχουμε :
[μεταβλητή] = i
[αρχική τιμή] = 1
[τελική τιμή] =20
Το
STEP
έχει παραλειφθεί γιατί θεωρείται ότι η
απουσία της STEP δηλώνει αύξηση κατά 1
[εντολές που θα εκτελεστούν επαναλαμβανόμενα]= PRINT i
Θα ξεκινήσουμε παρακολουθώντας βήμα-βήμα την εκτέλεση του
προγράμματος για να δούμε τι γίνεται.
Η εκτέλεση ξεκινά από την γραμμή 49 όπου η μεταβλητή
i
παίρνει την τιμή 1
και
γίνεται έλεγχος άν αυτή η τιμή είναι μεγαλύτερη από την
τελική τιμή της. Εφ' όσον η τιμή της μεταβλητής είναι
μικρότερη από την τελική τιμή, τότε συνεχίζεται η
εκτέλεση της γραμμής 50.
Στην γραμμή 50 γίνεται εμφάνιση της τιμής της
i
στο παράθυρο κοσόλας της XBASIC.
Στην γραμμή 51 γίνεται αύξηση της τιμής της
i
κατά το βήμα που έχει ορισθεί (1) και
εκτελείται ξανά η εντολή 49. Τώρα πάλι γίνεται έλεγχος άν
η τιμή της i
που είναι πια 2 είναι μικρότερη
από την μέγιστη (20). Είναι, οπότε έχουμε πάλι την
εκτέλεση της γραμμής 50 και εμφανίζεται πάλι στο παράθυρο
κονσόλας η τιμή της i. Συνεχίζουμε ξανά με την ΝΕΧΤ όπου
η τιμή της i γίνεται 3. Πάλι εκτέλεση της 49, έλεγχος και
επανάληψη όλων των παραπάνω μέχρι η τιμή της
i
να γίνει 20.
Μόλις η τιμή γίνει 20 τότε ο έλεγχος στην γραμμή 49
δίνει ότι έχουμε φτάσει στην τελική τιμή της μεταβλητής.
Τότε παταλείπονται όλες οι εντολές μέχρι την εντολή
NEXT
και η εκτέλεση του προγράμματος
συνεχίζεται μετά από αυτήν. Στο παράδειγμά μας, δεν
έχουμε τίποτε άλλο έτσι η εκτέλεση του προγράμματος
τελειώνει.
Με την βοήθεια ορισμού του βήματος μπορούμε να έχουμε
διάφορες περιπτώσεις που η μεταβλητή i
δεν
αυξάνει κατά 1 αλλά με διαφορετικό βήμα. Π.χ.
FOR i= 1 to 16 STEP 3
Σε αυτή την περίπτωση το βήμα για κάθε ανακύκλωση αυξάνει
κατά 3 και οι διαδοχικές τιμές που μπορεί λαμβάνει η
i
είναι 1,4,7,10,13,16. Επίσης μπορούμε να
έχουμε αντί για αύξηση της τιμής της
i
μείωση
με την παρακάτω σύνταξη.
FOR i = 16 to 1 STEP -1
Σε αυτή την περίπτωση η διαδοχικές τιμές της
i
θα είναι 16,15,14,...3,2,1.
Συνοψίζοντας βλέπουμε ότι με την εντολή FOR ...
NEXT
μπορούμε να έχουμε επαναλαμβανόμενη εκτέλεση
κώδικα όσες φορές επιθυμούμε και με οποιοδήποτε βήμα.
Επόμενο Προηγούμενο Περιεχόμενα