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

break

Το break είναι μια ειδική εντολή η οποία χρησιμοποιείται μέσα σε βρόγχους καθώς και στην εντολή switch έτσι ώστε να τερματιστεί ο βρόγχος ή να βγει  η εκτέλεση του προγράμματος έξω από το switch. Στην περίπτωση των βρόγχων χρησιμοποιείται συνήθως μετά από την ικανοποίηση κάποιας συνθήκης. Η σύνταξη του είναι απλή:

Το συμπεριλαμβάνουμε μέσα σε βρόγχους όπως while, do-while και for:

for do-while while
for (var i= 1; i<x;i++){
 console.log(i);
 if(i>x-3){
  break;
 }
}
 
  
var i=1;
do{
 console.log(i);
 if(i>x-3){
  break;
 }
 i++;
}while(i<=x);
var i=1;
while(i<=x){
 console.log(i);
 if(i>x-3){
  break;
 }
 i++;
}

Όλα τα παραπάνω δίνουν ακριβώς το ίδιο αποτέλεσμα: 

Ο κώδικας που εκτελέστηκε για το παραπάνω παράδειγμα ήταν: 

<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">
  <title>Δοκιμή της break</title>
  <script type='text/javascript'>
   function nums_ins(x){
    for(var i = 1;i<x;i++){
     console.log(i);
     if(i>x-3){
      break;
     }
    }
   }
  </script>
 </head>
 <body>
  Εισάγετε έναν αριθμό:
  <input type='text' name='temp' id='temp' onchange='nums_ins(this.value);'>
 </body>
</html>

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

Για την χρήση του break στην εντολή switch θα ανατρέξετε την αντίστοιχη ενότητα Switch και Case. 

continue

Η εντολή continue είναι παρόμοια με την break. Μόνο που η continue διακόπτει την τρέχουσα επανάληψη εκείνης της στιγμής και δεν διακόπτει ολοκληρωτικά τον βρόγχο. Η σύνταξη της είναι απλή όπως αυτή της break: 

continue;

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

Ανάλογα το είδος βρόγχου που χρησιμοποιούμε το continue συμπεριφέρεται ανάλογα: 

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

 Σημειώστε την διαφορά συμπεριφοράς στα while, do-while και for, for-in. Στα πρώτα όλα παρακάμπτονται και αμέσως ελέγχεται η συνθήκη, ενώ στα δεύτερα, πρώτα αλλάζει ο μετρητής και μετά ελέγχεται η συνθήκη.

Αρχείο: jscontinue.html

<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">
  <title>Δοκιμή της continue</title>
  <script type='text/javascript'>
   function nums_ins(x){ 
    for(var i = 1;i<x;i++){
     if(i==Math.round(x/2)){
      continue;
     }
     console.log(i);
    }
   }

  </script>
 </head>
 <body>
  Εισάγετε έναν αριθμό:
  <input type='text' name='temp' id='temp' onchange='nums_ins(this.value);'>
 </body>
</html>

Η εντολή «Math.round» μας επιστρέφει την στρογγυλοποιημένη μορφή της τιμής «x/2», όπου αυτή είναι πιο κοντά σε κάποιον ακέραιο… πχ για 1,4 θα δώσει 1 ενώ για 1,8 θα δώσει 2.

Στο συγκεκριμένο παράδειγμα εισάγοντας 4 το 4/2 προκύπτει 2 επομένως όταν το i είναι ίσο του 2 παρακάμπτει την επανάληψη αυτή κι έτσι δεν τυπώνεται ο αριθμός, και συνεχίζει στην επόμενη, εξού και το 3.