Η επανάληψη WHILE |
Η επανάληψη 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 σε +ή- κάποιον ακέραιο Προσπαθήστε να υπολογίσετε τον αριθμό των επαναλήψεων και τις τιμές του μετρητή πριν εκτελέσετε κάθε νέα έκδοση του προγράμματος. |
![]() |
![]() |
![]() |