Βρόχος While

Ο βρόχος While επιτυγχάνει την συνεχή εκτέλεση μιας ομάδας εντολών ή μιας και μόνο εντολής ενόσω μια δοθείσα λογική συνθήκη είναι αληθής.
Πιο συγκεκριμένα ο βρόχος While ελέγχει την λογική συνθήκη πριν εκτελέσει κάποια από τις εντολές που εμπεριέχει και αν η συνθήκη αυτή είναι αληθής συνεχίζει με την εκτέλεση των εντολών. Έπειτα ελέγχει ξανά την συνθήκη και τερματίζει μόνο στην περίπτωση που αυτή είναι ψευδής.
 Διάγραμμα ροής 
Στην παραπάνω εικόνα παρουσιάζεται το διάγραμμα ροής του βρόχου While.
Συγκεκριμένα γίνεται έλεγχος της συνθήκης Α. Αν αυτή είναι αληθής τότε εκτελούνται οι εντολές Β και γίνεται ξανά έλεγχος της συνθήκης Α. Οι εντολές Β θα εκτελούνται μέχρις ότου η συνθήκη Α να γίνει ψευδής. Μόλις η συνθήκη γίνει ψευδής το πρόγραμμα θα τερματίσει.

 Πλεονεκτήματα 
Το κύριο πλεονέκτημα του βρόχου While είναι η δυνατότητα επαναληπτικής εκτέλεσης ομάδας εντολών ή μιας και μόνο εντολής. Δηλαδή δεν είμαστε υποχρεωμένοι να γράφουμε τις ίδιες εντολές ξανά και ξανά προκειμένου να εκτελέσουμε μια ομάδα εντολών για τις διάφορες τιμές μιας μεταβλητής. Αυτό μας εξοικονομεί χρόνο στην συγγραφή του προγράμματος και ταυτόχρονα το πρόγραμμά μας είναι πιο μικρό και ως συνέπεια πιο γρήγορο κατά την εκτέλεση.

Επίσης με τον βρόχο While μπορούμε να δημιουργήσουμε και ένα είδος καθυστέρησης στην εφαρμογή μας αν αυτό κριθεί απαραίτητο(συγχρονισμός εργασιών κ.α.).
 Παράδειγμα σε C 
 int x = 10;
while (x > 0)
{
    printf ("Ready in %d\n", x);
    x--;
}
Στην παραπάνω εφαρμογή δημιουργούμε μια μικρή καθυστέρηση πριν το πρόγραμμα συνεχίσει την κανονική του ροή.

 Μειονεκτήματα 
Το μειονέκτημα το βρόχου While είναι ότι σε περίπτωση που ο προγραμματιστής δεν προβλέψει σωστά την ροή του προγράμματός του τότε μπορεί να δημιουργηθεί ατέρμων βρόχος. Δηλαδή η περίπτωση το πρόγραμμα να εισέλθει στον βρόχο και ποτέ να μην δημιουργηθούν οι κατάλληλες συνθήκες ώστε να εξέλθει από αυτόν.
 Παράδειγμα σε C 
int x = 1;
while (x > 0) 
{
    printf ("x = %d\n", x);
    x++;
}
Στην περίπτωση αυτή το πρόγραμμα θα εκτυπώνει επ' αόριστον την τιμή της μεταβλητής x.

 Πηγές 
 Η γλώσσα C σε βάθος, εκδόσεις ΚΛΕΙΔΑΡΙΘΜΟΣ, ISBN 960-209-966-6.

Κατηγορία:Προγραμματισμός
Κατηγορία:Έλεγχος ροής