Συγκριτικό διάγραμμα:
Βάση σύγκρισης | Διακοπή | να συνεχίσει |
---|---|---|
Εργο | Τερματίζει την εκτέλεση της υπόλοιπης επανάληψης του βρόχου. | Τερματίζει μόνο την τρέχουσα επανάληψη του βρόχου. |
Έλεγχος μετά το σπάσιμο / συνέχιση | Το 'break' επαναλαμβάνει τον έλεγχο του προγράμματος στο τέλος του βρόχου που περικλείει εκείνο το 'σπάσιμο'. | 'continue' επαναλαμβάνει τον έλεγχο του προγράμματος στην επόμενη επανάληψη του βρόχου που περικλείει το 'continue'. |
Αιτίες | Προκαλεί πρόωρο τερματισμό του βρόχου. | Προκαλεί πρόωρη εκτέλεση της επόμενης επανάληψης. |
Συνέχιση | Το 'break' σταματά τη συνέχιση του βρόχου. | 'continue' δεν σταματά τη συνέχιση του βρόχου, σταματά μόνο την τρέχουσα επανάληψη. |
Άλλες χρήσεις | 'break' μπορεί να χρησιμοποιηθεί με το 'switch', 'label'. | Το 'continue' δεν μπορεί να εκτελεστεί με 'switch' και 'labels'. |
Ορισμός της διακοπής
Στο C + + διάλειμμα έχει μόνο δύο χρήσεις δηλαδή πρώτα χρησιμοποιείται για να "τερματίσει την εκτέλεση μιας περίπτωσης στο statement switch". Δεύτερον, να "τερματίσει τον βρόχο και να επαναλάβει τον έλεγχο στην επόμενη δήλωση μετά τον βρόχο". Αλλά στο Java διάλειμμα έχει τρεις χρήσεις πρώτα, τερματίζει την περίπτωση στο διακόπτη, δεύτερος για να τερματίσει το βρόχο που περικλείει το σπάσιμο και τρίτο, όπως αναφέρθηκε προηγουμένως ότι η Java δεν παρέχει μια δήλωση 'goto', αλλά το εκτεταμένο break break μπορεί να χρησιμοποιηθεί σε τόπος του 'goto'.
Ας δούμε, κάθε χρήση του «σπάσει» λεπτομερώς.
Πρώτη χρήση για να τερματίσει την εκτέλεση της θήκης στο διακόπτη. Το σπάσιμο του διακόπτη επηρεάζει μόνο τον διακόπτη που το περικλείει, δεν επηρεάζει το βρόχο που περικλείει τον διακόπτη.
// Στο πλαίσιο της C ++. // χρησιμοποιώντας διακόπτη διακόπτη στο πλαίσιο της C ++. διακόπτης (έκφραση ακέραιος) {περίπτωση 1: ..... ..... διάλειμμα; περίπτωση 2: ..... ..... διάλειμμα; περίπτωση 3: ..... ..... διάλειμμα; Προκαθορισμένο: ....... ....... }
Δεύτερη χρήση, για να τερματίσετε βίαια τον βρόχο και να συνεχίσετε στην επόμενη δήλωση του βρόχου. Μόλις εμφανιστεί η εντολή break στο εσωτερικό του βρόχου, αυτός ο βρόχος τερματίζεται αμέσως χωρίς να εκτελέσει τον υπόλοιπο κώδικα στο σώμα αυτού του βρόχου και ο έλεγχος του προγράμματος φτάνει στην επόμενη εντολή γραμμένη μετά από αυτόν τον βρόχο.
// Χρησιμοποιώντας το σπάσιμο για να βγείτε από το βρόχο στο πλαίσιο της κλάσης Java main_class {public static κενό main (string args []) {για (int i = 0; i <100; i ++) {system.out.println ("i: + ί). αν (i == 10) σπάσει. // δεδομένου ότι η κατάσταση μέσα στο 'if' satistfies control βγαίνει από το 'for' βρόχο. } system.out.println ("Ο βρόχος σπάει εδώ"). }}
break μόνο αφήστε το πρόγραμμα να βγει από τον βρόχο που το περικλείει. Αν το σπάσιμο χρησιμοποιείται με τον ενσωματωμένο βρόχο, ξεσπάει μόνο ο εσωτερικός βρόχος και δεν επηρεάζει τον εξωτερικό βρόχο.
Η τρίτη χρήση, χρησιμοποιώντας το διάλειμμα ως τη μορφή του goto. Η Java χρησιμοποιεί το σπάσιμο ως μορφή στόχου χωρίς το πρόβλημά της. Δεδομένου ότι το geto παρέχει μια αδόμητη διακλάδωση που είναι δύσκολο να κατανοηθεί και επίσης απαγορεύει τη βελτιστοποίηση του μεταγλωττιστή, η Java χρησιμοποιεί μια εκτεταμένη μορφή σπασίματος που είναι παρόμοια με το goto και βοηθά στην έξοδο περισσότερων από ένα μπλοκ κάθε φορά και να ξαναρχίσει τον έλεγχο του προγράμματος στην άκρο του ετικετοποιημένου μπλοκ, που αναφέρεται με τη δήλωση σπάσει.
Δήλωση:
σπάσει ετικέτα?
Εδώ, η "ετικέτα" είναι το όνομα ενός συγκεκριμένου μπλοκ κώδικα ή ενός αναγνωριστικού στην Java, και αυτό το μπλοκ με την ετικέτα πρέπει να περικλείει τη δήλωση σπάσει. Η εντολή διακεκομμένης διακοπής χρησιμοποιείται για έξοδο από το σύνολο των ένθετων βρόχων. Καθώς συναντάται η δήλωση επισημασμένου σπασίματος, ο έλεγχος εξέρχεται από την ετικέτα block που αναφέρεται με τη δήλωση break.
Ας το δούμε πρακτικά.
// χρησιμοποιώντας το break ως μορφή του goto στο πλαίσιο της κλάσης Java main_class {δημόσιο static κενό main (string args []) {boolean t = true; πρώτο {δεύτερο {τρίτο {system.out.println ("αυτό το τρίτο μπλοκ"); εάν (t) σπάσει πρώτα? } system.out.println ("αυτό το δεύτερο μπλοκ"); } system.out.println ("αυτό το πρώτο μπλοκ"); } system.out.println ("αυτό το κύριο μπλοκ"); }} // output: αυτό είναι το τρίτο μπλοκ αυτό είναι το κύριο μπλοκ
Σε αυτόν τον κώδικα, καθώς ο έλεγχος φθάνει στο τρίτο μπλοκ, εκτελείται η δήλωση εκτύπωσης του και μετά ο έλεγχος επαναλαμβάνεται στη δήλωση 'if' και όπως ικανοποιείται, εκτελείται η εντολή break με την ετικέτα. Η ετικέτα που επισυνάπτεται με το σπάσιμο είναι η πρώτη, οπότε ο έλεγχος επαναλαμβάνεται στη δήλωση που γράφεται μετά το τέλος του μπλοκ πρώτα, δηλ. Στο κύριο μπλοκ που είναι μια δήλωση εκτύπωσης και που παίρνει εκτελεστεί.
Ορισμός της συνέχειας
Καθώς το διάλειμμα τερματίζει την εναπομένουσα επανάληψη του βρόχου και αφήνει τον έλεγχο να βγει από τον βρόχο, εδώ, συνεχίστε να δουλεύει κάπως σαν ένα διάλειμμα. Η εντολή continue σταματά την εκτέλεση του υπολειπόμενου κώδικα στον βρόχο για την τρέχουσα επανάληψη και επαναλαμβάνει τον έλεγχο στην επόμενη επανάληψη του βρόχου. Η εντολή continue παραλείπει τον κώδικα για την τρέχουσα επανάληψη και μεταβιβάζει τον έλεγχο στην επόμενη επανάληψη του βρόχου.
Ας το καταλάβουμε με ένα παράδειγμα.
// χρησιμοποιώντας τη συνέχιση στο περιβάλλον σε C ++. // εκτυπώνει τον άρτιο αριθμό μέχρι το 100. class main_class {δημόσιο static κενό main (string args []) {για (int i = 0; i <100; i ++) {if (i% 2! = 0) // συνεχίστε να συνεχίζετε τον έλεγχο στην επόμενη επανάληψη για το βρόχο system.out.println ("i:" + i); }}}
Στο παραπάνω πρόγραμμα, εάν η πρόταση 'if' είναι ικανοποιημένη, τότε εκτελείται η εντολή συνέχιση, η οποία δεν επιτρέπει την εκτέλεση της ακόλουθης εντολής εκτύπωσης και την επαναφορά του ελέγχου στην επόμενη επανάληψη του βρόχου 'for'. Αν i = 1 τότε ικανοποιείται η συνθήκη 'if' και συνεχίζεται η εκτέλεση, χωρίς να εκτελείται η δήλωση εκτύπωσης για την παράξενη τιμή του 'i' και ο έλεγχος επαναλαμβάνεται στην επόμενη επανάληψη του βρόχου 'για i = 2'. Αν i = 2 τότε δεν είναι ικανοποιημένη η δήλωση 'if'. η συνέχιση δεν εκτελεί και η εκτύπωση εκτύπωσης εκτυπώνει την τιμή του «i» που είναι ομοιόμορφη.
Βασικές διαφορές μεταξύ διακοπής και συνέχισης
- Βασικά, η λέξη κλειδί τερματίζει τις υπόλοιπες επαναλήψεις του βρόχου. Από την άλλη πλευρά, η συνεχιζόμενη λέξη-κλειδί τερματίζει μόνο την τρέχουσα επανάληψη του βρόχου.
- Μόλις εκτελεστεί η λέξη-κλειδί διακοπής, ο έλεγχος του προγράμματος εξέρχεται από το βρόχο και επαναλαμβάνεται στην επόμενη εντολή μετά τον βρόχο. Σε περίπτωση συνέχισης της λέξης-κλειδιού, ο έλεγχος του προγράμματος συνεχίζεται στην επόμενη επανάληψη του βρόχου.
- Όπως καταλήγει στο παραπάνω βήμα, ότι μετά την εκτέλεση του ελέγχου διακοπής του προγράμματος εξόδου από το βρόχο γίνεται σαφές ότι το σπάσιμο προκαλεί πρόωρη τερματισμό οποιουδήποτε βρόχου. Από την άλλη πλευρά, συνεχίστε μόνο τερματίζοντας την τρέχουσα επανάληψη και επαναλάβετε την επόμενη επανάληψη του βρόχου, τότε μπορούμε να πούμε ότι η συνέχιση προκαλεί πρόωρη εκτέλεση της επόμενης επανάληψης του βρόχου.
- Η λέξη-κλειδί διακοπής τερματίζει όλη την υπόλοιπη επανάληψη μετά την εκτέλεσή της, έτσι μπορούμε να πούμε ότι σταματά τη συνέχιση του βρόχου ενώ η λέξη συνέχιση συνεχίζει την εκτέλεση του βρόχου.
- Η λέξη-κλειδί διακοπής μπορεί να χρησιμοποιηθεί μαζί με τις δηλώσεις "switch" καθώς και την "ετικέτα", ενώ η συνέχιση της λέξης-κλειδιού δεν μπορεί να χρησιμοποιηθεί με το "switch" και "label".
Συμπέρασμα:
Η δήλωση διακοπής και συνέχιση είναι και η δήλωση μετατόπισης που μεταφέρει τον έλεγχο σε ένα άλλο τμήμα του προγράμματος. Όπου η δήλωση διακοπής αφήνει τον έλεγχο να βγει από το βρόχο, η δήλωση συνεχούς αφήνει τον έλεγχο στην επόμενη επανάληψη αυτού του βρόχου.