3.3 Η δομή επανάληψης While στην γλώσσα C++

Η δομή επανάληψης while στη γλώσσα C++ επιτρέπει την εκτέλεση ενός μπλοκ κώδικα όσο η συνθήκη που προσδιορίζεται είναι αληθής. Αυτό σημαίνει ότι ο μπλοκ κώδικα εκτελείται επανειλημμένα μέχρι η συνθήκη να γίνει ψευδής.

Η σύνταξη της δομής while είναι η εξής:

while (συνθήκη) {
  // Κώδικας που θα εκτελεστεί επαναληπτικά
}

Κατά την εκτέλεση, αρχικά ελέγχεται η συνθήκη. Αν η συνθήκη είναι αληθής, τότε ο κώδικας που βρίσκεται μέσα στο μπλοκ εκτελείται. Αφού ολοκληρωθεί η εκτέλεση του μπλοκ, ελέγχεται ξανά η συνθήκη. Αυτή η διαδικασία επαναλαμβάνεται μέχρι η συνθήκη να γίνει ψευδής, οπότε η εκτέλεση της δομής while διακόπτεται και η εκτέλεση συνεχίζει με τον επόμενο κώδικα μετά τη δομή while.

Η δομή while είναι χρήσιμη όταν δεν γνωρίζουμε εκ των προτέρων πόσες φορές θα επαναληφθεί ο κώδικας ή όταν θέλουμε να επαναλάβουμε έναν κώδικα μέχρι να επιτευχθεί μια συγκεκριμένη συνθήκη.

Ένα αναλυτικό παράδειγμα χρήσης της δομής while στη γλώσσα C++ μπορεί να είναι η εκτύπωση των αριθμών από το 1 έως το 5. Ας δούμε τον παρακάτω κώδικα:

#include <iostream>

int main() {
    int number = 1;

    // Επανάληψη μέχρι η μεταβλητή number να γίνει μεγαλύτερη ή ίση του 5
    while (number <= 5) {
        std::cout << number << " ";  // Εκτύπωση της τρέχουσας τιμής της μεταβλητής number
        number++;  // Αύξηση της μεταβλητής number κατά 1
    }

    return 0;
}

Σε αυτό το παράδειγμα, η μεταβλητή number αρχικοποιείται με την τιμή 1. Η δομή while ελέγχει αν η τιμή της number είναι μικρότερη ή ίση του 5. Αν αυτή η συνθήκη είναι αληθής, τότε ο κώδικας μέσα στο μπλοκ εκτελείται.

Στο μπλοκ, ο αριθμός number εκτυπώνεται στην οθόνη με τη χρήση της συνάρτησης std::cout. Έπειτα, η τιμή της number αυξάνεται κατά ένα με την εντολή number++.

Η διαδικασία αυτή επαναλαμβάνεται μέχρι η συνθήκη number <= 5 να γίνει ψευδής. Σε αυτό το σημείο, η εκτέλεση της δομής while διακόπτεται και η εκτέλεση του προγράμματος συνεχίζεται μετά τον κώδικα που ακολουθεί τη δομή while.

Έτσι, το αποτέλεσμα που θα εμφανιστεί στην οθόνη είναι:

1 2 3 4 5

Κάθε αριθμός εκτυπώνεται ξεχωριστά και διαχωρίζεται από ένα κενό διάστημα.

Το do/while loop είναι μια εκδοχή του while loop. Η σύνταξή του είναι η εξής:

do {
    // Κώδικας που θα εκτελεστεί τουλάχιστον μία φορά
} while (συνθήκη);

Αρχικά, το block κώδικα εκτελείται μία φορά χωρίς να ελεγχθεί η συνθήκη. Έπειτα, ελέγχεται η συνθήκη. Αν η συνθήκη είναι αληθής, το loop επαναλαμβάνεται και εκτελείται ξανά ολόκληρο το block κώδικα. Αυτή η διαδικασία επαναλαμβάνεται μέχρι η συνθήκη να γίνει ψευδής, οπότε το loop τερματίζει και η εκτέλεση συνεχίζεται με την επόμενη εντολή μετά το do/while loop.

Το do/while loop είναι χρήσιμο όταν θέλουμε να εκτελέσουμε το block κώδικα τουλάχιστον μία φορά, ανεξαρτήτως της αρχικής τιμής της συνθήκης. Επίσης, επιτρέπει την εκτέλεση ενός block κώδικα πριν από τον έλεγχο της συνθήκης, καθώς στο while loop ο έλεγχος γίνεται πριν την εκτέλεση του block κώδικα.

Ας δούμε ένα αναλυτικό παράδειγμα με το do/while loop στη γλώσσα C:

#include <stdio.h>

int main() {
    int number = 1;  // Αρχικοποίηση της μεταβλητής number με την τιμή 1

    do {
        printf("%d ", number);  // Εκτύπωση της τιμής της μεταβλητής number
        number++;  // Αύξηση της τιμής της μεταβλητής number κατά 1
    } while (number <= 5);  // Επανάληψη μέχρι η τιμή της μεταβλητής number να είναι μικρότερη ή ίση με 5

    return 0;
}

Σε αυτό το παράδειγμα, η μεταβλητή number αρχικοποιείται στην τιμή 1. Στη συνέχεια, έχουμε το do/while loop. Αρχικά, το block κώδικα μέσα στο do εκτελείται χωρίς να ελεγχθεί η συνθήκη.

Μέσα στο block κώδικα, εκτυπώνεται η τιμή της μεταβλητής number και η μεταβλητή number αυξάνεται κατά ένα (με την εντολή number++).

Στη συνέχεια, γίνεται ο έλεγχος της συνθήκης number <= 5. Αν η συνθήκη είναι αληθής, το loop συνεχίζει και επαναλαμβάνεται το block κώδικα. Αν η συνθήκη γίνει ψευδής, το loop τερματίζει και η εκτέλεση συνεχίζεται με την επόμενη εντολή μετά το do/while loop.

Στο παράδειγμά μας, το loop θα εκτυπώσει τους αριθμούς από 1 έως 5. Ακόμη και αν η αρχική τιμή της μεταβλητής number ήταν μεγαλύτερη από 5, το block κώδικα θα εκτελούνταν τουλάχιστον μία φορά, λόγω της φύσης του do/while loop.

23 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων