Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
while (συνθήκη) {
// Κώδικας που θα εκτελεστεί επαναληπτικά
}
while (συνθήκη) { // Κώδικας που θα εκτελεστεί επαναληπτικά }
while (συνθήκη) {
  // Κώδικας που θα εκτελεστεί επαναληπτικά
}

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
int main() {
int number = 1;
// Επανάληψη μέχρι η μεταβλητή number να γίνει μεγαλύτερη ή ίση του 5
while (number <= 5) {
std::cout << number << " "; // Εκτύπωση της τρέχουσας τιμής της μεταβλητής number
number++; // Αύξηση της μεταβλητής number κατά 1
}
return 0;
}
#include <iostream> int main() { int number = 1; // Επανάληψη μέχρι η μεταβλητή number να γίνει μεγαλύτερη ή ίση του 5 while (number <= 5) { std::cout << number << " "; // Εκτύπωση της τρέχουσας τιμής της μεταβλητής number number++; // Αύξηση της μεταβλητής number κατά 1 } return 0; }
#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.

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
do {
// Κώδικας που θα εκτελεστεί τουλάχιστον μία φορά
} while (συνθήκη);
do { // Κώδικας που θα εκτελεστεί τουλάχιστον μία φορά } while (συνθήκη);
do {
    // Κώδικας που θα εκτελεστεί τουλάχιστον μία φορά
} while (συνθήκη);

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#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;
}
#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; }
#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 !!
Μετάβαση σε γραμμή εργαλείων