Η επανάληψη while εκτελείται όσο η συνθήκη ελέγχου είναι αληθής. Όταν η
συνθήκη ελέγχου γίνει ψευδής η επανάληψη διακόπτεται. Το πρόγραμμα του
αρχείου WHILE.C δίνει ένα παράδειγμα της επανάληψης while.
Το πρόγραμμα ξεκινά με τα σχόλια τη συνάρτηση main και στη συνέχεια
ορίζεται η ακέραια μεταβλητή count. Το πρόγραμμα αρχικοποιεί την μεταβλητή
στη τιμή 0 και στη συνέχεια ξεκινά την επανάληψη while. Η σύνταξη της
επανάληψης φαίνεται καθαρά.
while (έκφραση) {
πρόταση;
...
πρόταση;
}
Η λέξη κλειδί while ακολουθείται από μιά έκφραση που περικλείεται σε
παρενθέσεις και αυτή ακολουθείται από το σώμα της επενάληψης που είναι μία
σύνθετη πρόταση (compount statement), δηλαδή μία ή περισσότερες προτάσεις.
Αν η πρόταση είναι μόνο μία ή είναι δομή προτάσεων τότε δεν απαιτούνται
αγκύλες. Αλλοιώς, αν δηλαδή πρόκειται γιά ακολουθία προτάσεων, οι προτάσεις
που αποτελούν τη σύνθετη πρόταση ομαδοποιούνται με αγκύλες. Όσο η έκφραση
είναι αληθής οι προτάσεις του σώματος εκτελούνται συνεχώς. Στο παράδειγμα οι
προτάσεις θα εκτελεστούν μέχρι που ο μετρητής count να παρει την τιμή 6. Εφ'
όσον ο μετρητής αυξάνεται κατά 1 σε κάθε επανάληψη οι προτάσεις θα
εκτελεστούν 6 φορές. Στη συνέχεια η επανάληψη θα τερματιστεί και η εκτέλεση
του προγράμματος θα συνεχιστεί με την εκτέλεση της πρότασης αμέσως μετά το
σώμα της επανάληψης. 'Ετσι το αποτέλεσμα στην οθόνη θα είναι
The value of count is 0
The value of count is 1
The value of count is 2
The value of count is 3
The value of count is 4
The value of count is 5
Η σύνταξη και η λειτουργία της συνθήκης ελέγχου εξετάζεται στο επόμενο
κεφάλαιο. Μέχρι η συνθήκη τότε ας θεωρηθεί περίπου ως η αντίστοιχη
μαθηματική λογική έννοια.
Δύο σημεία πρέπει να τονιστούν σχετικά με την επενάληψη while. Πρώτο, εάν η
μεταβλητή count έχει αρχική τιμή κάποιον αριθμό μεγαλύτερο του 5 τότε η
συνθήκη ελέγχου θα είναι από την αρχή ψευδής και συνεπώς η σύνθετη πρόταση
του σώματος της επανάληψης δεν θα εκτελεστεί ποτέ. Το πρόγραμμα θα
συνεχίσει από την πρώτη εντολή μετά την επανάληψη while. Δεύτερο, εάν η τιμή
της μεταβλητής count είναι τέτοια που η συνθήκη ελέγχου είναι αληθής και
στη συνέχεια η τιμή αυτή δεν αλλάζει κατά την εκτέλεση της επανάληψης τότε
η επανάληψη δεν μπορεί να τερματίσει (infinite loop) και το πρόγραμμα δεν
μπορεί να τελειώσει κανονικά.
Σαν εφαρμογή μπορείτε να πειραματιστείτε μεταβάλλοντας ένα ή περισσότερα
από τα παρακάτω:
- το όριο τερματισμού (το 6) στη συνθήκη ελέγχου
- το σύμβολο ανισότητας από μεγαλύτερο σε μικρότερο
- την αρχική τιμή του μετρητή από 0 σε κάποιον άλλο ακέραιο
- το βήμα αύξησης, από +1 σε +ή- κάποιον ακέραιο
Προσπαθήστε να υπολογίσετε τον αριθμό των επαναλήψεων και τις τιμές του
μετρητή πριν εκτελέσετε κάθε νέα έκδοση του προγράμματος.
|