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.5 Η εντολές Break και Continue στην γλώσσα C++

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

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

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#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;
}
#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; }
#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 εκτελείται, παραλείποντας την υπόλοιπη εκτέλεση του κώδικα για το συγκεκριμένο στοιχείο. Στη συνέχεια, ο βρόχος συνεχίζει με την επόμενη επανάληψη και εκτυπώνει τα υπόλοιπα στοιχεία του πίνακα. Έτσι, το αποτέλεσμα που θα εκτυπωθεί στην οθόνη θα είναι:

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

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

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

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#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;
}
#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; }
#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) μετά τον κάθε αριθμό.

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
0
1
2
3
5
6
7
8
9
0 1 2 3 5 6 7 8 9
0
1
2
3
5
6
7
8
9

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

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

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#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;
}
#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; }
#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, δηλώνοντας την ομαλή ολοκλήρωση του προγράμματος.

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
1
2
3
5
6
7
1 2 3 5 6 7
1
2
3
5
6
7
23 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων