3.5 Η εντολές Break και Continue στην γλώσσα C++

Οι εντολές break και continue είναι δομές ελέγχου που χρησιμοποιούνται στη γλώσσα προγραμματισμού C++ για τον έλεγχο της ροής εκτέλεσης ενός προγράμματος.

Η εντολή break χρησιμοποιείται μέσα σε δομές επανάληψης, όπως οι for, while και do-while, και έχει ως αποτέλεσμα την άμεση έξοδο από τη δομή επανάληψης. Όταν η εντολή break εκτελείται, ο έλεγχος της εκτέλεσης προχωράει άμεσα στην επόμενη εντολή μετά το τέλος της δομής επανάληψης.

Αντίθετα, η εντολή continue χρησιμοποιείται επίσης μέσα σε δομές επανάληψης και προκαλεί την άμεση προώθηση της εκτέλεσης στην επόμενη επανάληψη της δομής, παραλείποντας τις υπόλοιπες εντολές που βρίσκονται μετά το continue στο εσωτερικό της δομής.

Ο σκοπός των εντολών break και continue είναι να ελέγχουν τη ροή της εκτέλεσης ενός προγράμματος μέσα σε δομές επανάληψης, επιτρέποντας την παράκαμψη ή τη διακοπή της επανάληψης ανάλογα με συγκεκριμένες συνθήκες ή κριτήρια.

Ας υποθέσουμε ότι έχουμε έναν πίνακα ακεραίων numbers και θέλουμε να εκτυπώσουμε όλα τα στοιχεία του πίνακα, εκτός από τον αριθμό 3. Μπορούμε να χρησιμοποιήσουμε την εντολή continue για να παραλείψουμε την εκτέλεση του κώδικα για το συγκεκριμένο στοιχείο του πίνακα. Ας δούμε ένα παράδειγμα:

#include <iostream>

int main() {
  int numbers[] = {1, 2, 3, 4, 5};

  for (int i = 0; i < 5; i++) {
    if (numbers[i] == 3) {
      continue;  // Παράκαμψη της εκτέλεσης για τον αριθμό 3
    }
    std::cout << numbers[i] << std::endl;  // Εκτύπωση των στοιχείων του πίνακα, εκτός από το 3
  }

  return 0;
}

Σε αυτό το παράδειγμα, η εντολή continue χρησιμοποιείται μέσα σε έναν βρόχο for για να ελέγξει αν ένα στοιχείο του πίνακα numbers είναι ίσο με 3. Αν η συνθήκη είναι αληθής, τότε η εντολή continue εκτελείται, παραλείποντας την υπόλοιπη εκτέλεση του κώδικα για το συγκεκριμένο στοιχείο. Στη συνέχεια, ο βρόχος συνεχίζει με την επόμενη επανάληψη και εκτυπώνει τα υπόλοιπα στοιχεία του πίνακα. Έτσι, το αποτέλεσμα που θα εκτυπωθεί στην οθόνη θα είναι:

1
2
4
5

Όπως βλέπουμε, το στοιχείο 3 παραλείπεται από την εκτύπωση λόγω της εντολής continue.

Το παρακάτω παράδειγμα παραλείπει την τιμή 4

Παράδειγμα:

#include <iostream>
using namespace std;

int main() {
    for (int i = 0; i < 10; i++) { // Επανάληψη από το 0 έως το 9
        if (i == 4) { // Αν ο αριθμός i είναι ίσος με 4
            continue; // Προχωράμε στον επόμενο αριθμό χωρίς να εκτελεστούν οι εντολές που ακολουθούν
        }
        cout << i << endl; // Εκτύπωση του αριθμού i
    }
    return 0;
}

Ο παραπάνω κώδικας εκτελεί μια επανάληψη με τη χρήση του βρόχου for από το 0 έως το 9. Κατά τη διάρκεια της επανάληψης, γίνεται ο έλεγχος αν ο τρέχον αριθμός i είναι ίσος με 4 με την χρήση της εντολής if. Αν ισχύει αυτή η συνθήκη, τότε η εντολή continue παρακάμπτει τις υπόλοιπες εντολές του βρόχου και προχωρά στον επόμενο αριθμό.

Εάν η συνθήκη του if δεν ικανοποιείται, τότε εκτελείται η εντολή cout << i << endl;, η οποία εκτυπώνει την τρέχουσα τιμή του i στην οθόνη, ακολουθούμενη από έναν χαρακτήρα νέας γραμμής.

Συνολικά, ο κώδικας εκτυπώνει τους αριθμούς από το 0 έως το 9, αλλά παραλείπει τον αριθμό 4 λόγω της εντολής continue.

Το αποτέλεσμα που θα εμφανιστεί στην οθόνη είναι η σειρά των αριθμών από το 0 έως το 9, με εξαίρεση τον αριθμό 4. Κάθε αριθμός θα εμφανιστεί σε μία νέα γραμμή, καθώς η εντολή cout << i << endl; προσθέτει έναν χαρακτήρα νέας γραμμής (endl) μετά τον κάθε αριθμό.

Το ακριβές αποτέλεσμα που θα εμφανιστεί στην οθόνη θα είναι:

0
1
2
3
5
6
7
8
9

Ο αριθμός 4 θα παραλειφθεί λόγω της εντολής continue, η οποία προκαλεί την παράκαμψη των υπολοίπων εντολών του βρόχου για τη συγκεκριμένη επανάληψη όταν i είναι ίσο με 4.

Μπορείτε επίσης να χρησιμοποιήσετε τις δηλώσεις break και continue σε βρόχους while:

Παράδειγμα:

#include <iostream>
using namespace std;

int main () {
   int i = 0;
   while (i < 10) {
      i++;
      if (i == 4) {
         continue;  // Αν η τιμή του i είναι 4, πήγαινε στην αρχή του βρόχου (συνέχισε την επόμενη επανάληψη) χωρίς να εκτελέσεις τον υπόλοιπο κώδικα μέσα στον βρόχο
      }
      if (i == 8) {
         break;  // Αν η τιμή του i είναι 8, βγες από τον βρόχο και συνέχισε με την εκτέλεση του υπόλοιπου κώδικα μετά τον βρόχο
      }
      cout << i << endl;  // Εκτύπωση της τιμής του i
   }
   return 0;
}

Ο παραπάνω κώδικας εκτελεί έναν βρόχο while και εκτυπώνει τις τιμές του i από το 1 μέχρι το 10, αλλά παραλείπει τον αριθμό 4 και σταματάει στον αριθμό 8.

Αναλυτικά, το πρόγραμμα λειτουργεί ως εξής:

  1. Αρχικοποίηση της μεταβλητής i με την τιμή 0.
  2. Εκτέλεση του βρόχου while όσο η συνθήκη i < 10 είναι αληθής.
  3. Εντός του βρόχου:
  • Αύξηση της τιμής του i κατά 1.
  • Έλεγχος για τις εξής συνθήκες:
    • Αν η τιμή του i είναι 4, πηγαίνει απευθείας στην αρχή του βρόχου με τη χρήση της δήλωσης continue. Έτσι, ο αριθμός 4 παραλείπεται.
    • Αν η τιμή του i είναι 8, βγαίνει από τον βρόχο με τη χρήση της δήλωσης break. Έτσι, ο βρόχος σταματάει και το πρόγραμμα συνεχίζει με τον κώδικα που ακολουθεί τον βρόχο.
    • Αν οι παραπάνω συνθήκες δεν ικανοποιούνται, τότε εκτυπώνεται η τιμή του i χρησιμοποιώντας την εντολή cout << i << endl;.
  1. Επιστροφή της τιμής 0, δηλώνοντας την ομαλή ολοκλήρωση του προγράμματος.

Έτσι,το πρόγραμμα θα εκτυπώσει τα ακόλουθα αποτελέσματα:

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