Οι εντολές “break” και “continue” χρησιμοποιούνται στη γλώσσα C για τον έλεγχο της ροής εκτέλεσης ενός προγράμματος μέσα σε επαναλήψεις (όπως οι βρόχοι). Αν και έχουν παρόμοια λειτουργία, διαφέρουν στον τρόπο που επηρεάζουν την εκτέλεση του προγράμματος.
Η εντολή “break” χρησιμοποιείται για να διακόψει μια επανάληψη από τη στιγμή που εκτελείται. Όταν η εντολή “break” εκτελείται εντός μιας επανάληψης (όπως ένας βρόχος for ή while), η εκτέλεση του προγράμματος διακόπτεται αμέσως και η εκτέλεση συνεχίζεται από την επόμενη εντολή μετά τον βρόχο.
Αντίθετα, η εντολή “continue” χρησιμοποιείται για να παραλείψει την υπόλοιπη εκτέλεση της τρέχουσας επανάληψης και να μεταβεί αμέσως στην επόμενη επανάληψη. Όταν η εντολή “continue” εκτελείται εντός μιας επανάληψης, οι εντολές που βρίσκονται μετά την “continue” αγνοούνται και η εκτέλεση συνεχίζεται με την επόμενη επανάληψη.
Και οι δύο εντολές είναι χρήσιμες για τον έλεγχο της ροής εκτέλεσης μέσα σε βρόχους, επιτρέποντας την προσαρμογή της εκτέλεσης με βάση συγκεκριμένες συνθήκες ή κριτήρια.
Το παρακάτω παράδειγμα βγαίνει από τον for loop όταν η μεταβλητή i είναι ίση με 13:
#include <stdio.h> int main() { int i; for (i = 0; i <= 15; i++) { if (i == 13) { break; // Έξοδος από την επανάληψη στην περίπτωση που i είναι ίσο με 13 } printf("%d ", i); // Εκτύπωση της τιμής της μεταβλητής i } return 0; }
Ο παραπάνω κώδικας σε C περιέχει σχόλια για κάθε σημαντικό τμήμα του κώδικα. Ας αναλύσουμε τα σχόλια:
#include <stdio.h>
: Συμπεριλαμβάνει τη βιβλιοθήκηstdio.h
, η οποία περιέχει τις δηλώσεις συναρτήσεων για την εισαγωγή και έξοδο δεδομένων.int main()
: Ο κύριος συναρτησιακός μπλοκ του προγράμματος.int i;
: Δήλωση μιας μεταβλητής i τύπου int.for (i = 0; i <= 15; i++)
: Ένας βρόχος for που επαναλαμβάνεται από την τιμή 0 μέχρι και την τιμή 15, αυξάνοντας την τιμή της μεταβλητής i κατά 1 σε κάθε επανάληψη.if (i == 13) { break; }
: Έλεγχος αν η τιμή της μεταβλητής i είναι ίση με 13. Σε αυτήν την περίπτωση, η εντολήbreak
διακόπτει την επανάληψη και βγαίνει από αυτήν.printf("%d ", i);
: Εκτύπωση της τιμής της μεταβλητής i. Η%d
χρησιμοποιείται για να αντικαταστήσει την τιμή της μεταβλητής i ως ένας ακέραιος αριθμός.return 0;
: Επιστροφή της τιμής 0 από τη συνάρτησηmain
, υποδηλώνοντας επιτυχή ολοκλήρωση του προγράμματος.
Όταν εκτελεστεί ο παραπάνω κώδικας, θα εμφανιστεί στην οθόνη η ακόλουθη έξοδο:
0 1 2 3 4 5 6 7 8 9 10 11 12
Ο βρόχος for
επαναλαμβάνεται από την τιμή 0 έως και την τιμή 15. Ωστόσο, όταν η τιμή της μεταβλητής i
γίνει ίση με 13, η εντολή break
διακόπτει την επανάληψη και ο βρόχος τερματίζεται. Έτσι, οι αριθμοί από το 0 έως το 12 εμφανίζονται στην οθόνη χωρισμένοι από ένα κενό διάστημα.
Η δήλωση continue διακόπτει μια επανάληψη στο loop αν συμβεί μια συγκεκριμένη συνθήκη και συνεχίζει με την επόμενη επανάληψη στο loop.
Το παρακάτω παράδειγμα παραλείπει την τιμή του 13:
#include <stdio.h> int main() { int i; // Δήλωση μεταβλητής i for (i = 0; i <= 15; i++) { if (i == 13) { continue; // Αν η τιμή της μεταβλητής i είναι 13, προχωράμε στο επόμενο βήμα του βρόχου for χωρίς να εκτελέσουμε τις παρακάτω εντολές } printf("%d ", i); // Εκτύπωση της τιμής της μεταβλητής i } return 0; }
Ο παραπάνω κώδικας γράφει τους αριθμούς από 0 έως 15 (εκτός του 13) στην οθόνη.
Στην αρχή, δηλώνεται η μεταβλητή i
τύπου int
για την αποθήκευση των αριθμών. Έπειτα, χρησιμοποιείται ο βρόχος for
για να επαναλάβει την εκτέλεση του κώδικα από το 0 έως το 15. Μέσα στον βρόχο, υπάρχει η συνθήκη if
που ελέγχει εάν η τιμή της i
είναι 13. Αν είναι, τότε χρησιμοποιείται η εντολή continue
για να προχωρήσει στο επόμενο βήμα του βρόχου χωρίς να εκτελέσει την εντολή printf
. Αν η συνθήκη if
δεν ισχύει, τότε εκτυπώνεται η τιμή της i
στην οθόνη με τη χρήση της συνάρτησης printf
.
Το αποτέλεσμα που εμφανίζεται στην οθόνη θα είναι η ακολουθία των αριθμών 0 1 2 3 4 5 6 7 8 9 10 11 12 14 15.
Μπορείτε επίσης να χρησιμοποιήσετε τις δηλώσεις break και continue σε while loops:
Παράδειγμα με break:
#include <stdio.h> int main() { int i = 0; while (i <= 10) { if (i == 5) { break; // Έξοδος από την επανάληψη όταν i γίνει ίσο με 5 } printf("%d ", i); // Εκτύπωση της τιμής του i i++; // Αύξηση της τιμής του i κατά 1 } return 0; // Επιστροφή της τιμής 0 στο τέλος του προγράμματος }
Ο παραπάνω κώδικας γράφεται σε γλώσσα C και περιλαμβάνει σχόλια που εξηγούν τον κώδικα. Ας εξετάσουμε τι κάνει ο κώδικας:
- Πρώτα, συμπεριλαμβάνουμε τη βιβλιοθήκη
stdio.h
, που περιέχει τις δηλώσεις για συναρτήσεις εισόδου/εξόδου. - Στη συνέχεια, ορίζουμε τη συνάρτηση
main
, η οποία είναι η κύρια συνάρτηση του προγράμματος. - Δηλώνουμε μια μεταβλητή
i
και την αρχικοποιούμε με την τιμή 0. - Χρησιμοποιούμε μια δομή επανάληψης
while
για να εκτελέσουμε κάποιες εντολές όσο η συνθήκηi <= 10
είναι αληθής. - Μέσα στη δομή επανάληψης, έχουμε μια συνθήκη
if
που ελέγχει εάν η τιμή τουi
είναι ίση με 5. Αν είναι, τότε χρησιμοποιούμε την εντολήbreak
για να βγούμε από την επανάληψη. - Εκτυπώνουμε την τιμή του
i
χρησιμοποιώντας τη συνάρτησηprintf
. - Αυξάνουμε την τιμή του
i
κατά 1 με την εντολήi++
. - Η επανάληψη επαναλαμβάνεται μέχρι την ικανοποίηση της συνθήκης
i <= 10
. - Τέλος, επιστρέφουμε την τιμή 0 από τη συνάρτηση
main
, που υποδηλώνει επιτυχή ολοκλήρωση του προγράμματος.
Το αποτέλεσμα του παραπάνω παραδείγματος θα είναι η εκτύπωση των αριθμών 0, 1, 2, 3 και 4 στη σειρά. Η εκτέλεση σταματά όταν η μεταβλητή i γίνει ίση με 5, και ο αριθμός 5 δεν εκτυπώνεται.
Παράδειγμα με continue:
#include <stdio.h> int main() { int i = 0; while (i <= 10) { if (i == 5) { i++; continue; // Παράγκαλο: Αν η μεταβλητή i είναι ίση με 5, αυξήστε την i κατά 1 και προχωρήστε στον επόμενο γύρο του βρόχου } printf("%d ", i); // Εκτύπωση της τιμής της μεταβλητής i i++; // Αύξηση της μεταβλητής i κατά 1 } return 0; }
Ο παραπάνω κώδικας γράφεται σε C και πραγματοποιεί μια επανάληψη (loop) με τη χρήση της δομής while. Η μεταβλητή i αρχικοποιείται με την τιμή 0.
Κατά τη διάρκεια κάθε επανάληψης, γίνεται έλεγχος αν η i είναι ίση με 5. Αν ναι, η i αυξάνεται κατά 1 και παραλείπεται η εκτέλεση των υπολοίπων εντολών της τρέχουσας επανάληψης με τη χρήση της εντολής continue.
Αν η i δεν είναι ίση με 5, τότε εκτυπώνεται η τιμή της i μέσω της συνάρτησης printf. Έπειτα, η i αυξάνεται κατά 1.
Ο κώδικας επαναλαμβάνεται μέχρι η i να γίνει μεγαλύτερη από 10. Στο τέλος, η main συνάρτηση επιστρέφει την τιμή 0, υποδηλώνοντας ότι το πρόγραμμα ολοκληρώθηκε επιτυχώς.
Το αποτέλεσμα του παραπάνω παραδείγματος θα είναι η εκτύπωση των αριθμών 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 στη σειρά. Η επανάληψη παραλείπει την τιμή της μεταβλητής i όταν η τιμή της είναι ίση με 5, αλλά συνεχίζεται με την επόμενη τιμή της μεταβλητής i στην επόμενη επανάληψη του while loop.