Σε αυτό το άρθρο, πρόκειται να συζητήσουμε τις διαφορές μεταξύ του βρόχου "while" και του βρόχου "do-while".
Συγκριτικό διάγραμμα
Βάση σύγκρισης | ενώ | κάνετε-ενώ |
---|---|---|
Γενική μορφή | ενώ (προϋπόθεση) { δηλώσεις · // σώμα βρόχου }} | κάνω{ . δηλώσεις · // σώμα βρόχου. . } ενώ (Κατάσταση)? |
Έλεγχος συνθηκών | Στον βρόχο «ενώ» η κατάσταση ελέγχου εμφανίζεται στην αρχή του βρόχου. | Στον βρόχο "do-while", η κατάσταση ελέγχου εμφανίζεται στο τέλος του βρόχου. |
Επαναλήψεις | Οι επαναλήψεις δεν συμβαίνουν εάν, η συνθήκη κατά την πρώτη επανάληψη, φαίνεται ψευδής. | Η επανάληψη λαμβάνει χώρα τουλάχιστον μία φορά ακόμη και αν η κατάσταση είναι ψευδής κατά την πρώτη επανάληψη. |
Ορισμός του βρόχου ενώ
Ο βρόχος while είναι ο πιο θεμελιώδης βρόχος που είναι διαθέσιμος σε C ++ και Java. Η λειτουργία ενός βρόχου ενώ είναι παρόμοια τόσο C + + και Java.The γενική μορφή του while loop είναι:
ενώ (condition) {statements; // σώμα βρόχου}
Ο βρόχος while επιβεβαιώνει πρώτα την κατάσταση και εάν η συνθήκη είναι αληθής τότε επαναλαμβάνει τον βρόχο έως ότου η κατάσταση αποδειχθεί ψευδής. Η συνθήκη in while loop μπορεί να είναι οποιαδήποτε έκφραση boolean. Όταν η έκφραση επιστρέφει οποιαδήποτε μη μηδενική τιμή, τότε η συνθήκη είναι "true" και αν μια έκφραση επιστρέφει μηδενική τιμή, η προϋπόθεση γίνεται "false". Αν η συνθήκη γίνει αληθής, τότε ο βρόχος επαναλαμβάνεται και αν η κατάσταση γίνει ψευδής, τότε ο έλεγχος περνά στην επόμενη γραμμή του κώδικα που ακολουθεί αμέσως ο βρόχος.
Οι δηλώσεις ή το σώμα του βρόχου μπορεί να είναι είτε μια κενή δήλωση είτε μια μόνο δήλωση ή ένα μπλοκ δηλώσεων.
Ας συζητήσουμε τη λειτουργία ενός βρόχου. Στο παρακάτω παράδειγμα ο κώδικας θα εκτυπώσει από το 1 έως το 10.
// παράδειγμα είναι στην Java. class {public static void κύρια (args []) {int n = 0; ενώ (n <= 10) {n ++; system.out.println ("n =" + n). }}} // έξοδος n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10
Εδώ, η αρχική τιμή του 'n' είναι 0, η οποία μετατρέπει την κατάσταση στον loop while true. Στη συνέχεια, ο έλεγχος εισέρχεται στο σώμα του βρόχου ενώ η τιμή του 'n' αυξάνεται σύμφωνα με την πρώτη εντολή στο βρόχο. Στη συνέχεια εκτυπώνεται η τιμή του 'n' και πάλι, ο έλεγχος επανέρχεται στην κατάσταση ενός βρόχου while, τώρα η τιμή του 'n' είναι 1 που ικανοποιεί και πάλι την κατάσταση και εκτελείται και πάλι το σώμα του βρόχου.
Αυτό συνεχίζεται έως ότου η κατάσταση είναι αληθής, μόλις η κατάσταση γίνει ψευδής, ο βρόχος τερματίζεται. Όπως και για το βρόχο, ο βρόχος while ελέγχει πρώτα την κατάσταση και στη συνέχεια εκτελεί το σώμα βρόχου.
Ορισμός του do-while Loop
Όπως και στον βρόχο while, αν η κατάσταση ελέγχου είναι ψευδής μόνο στην πρώτη επανάληψη, τότε το σώμα του loop while δεν εκτελείται καθόλου. Αλλά ο βρόχος do-while είναι κάπως διαφορετικός από τον βρόχο while. Ο βρόχος do-while εκτελεί το σώμα του βρόχου τουλάχιστον μία φορά ακόμη και αν η κατάσταση είναι λανθασμένη κατά την πρώτη προσπάθεια.
Η γενική μορφή του do-while έχει ως εξής.
κάνω{ . δηλώσεις // σώμα βρόχου. . } ενώ (Κατάσταση)?
Σε ένα βρόχο do-while, το σώμα του βρόχου λαμβάνει χώρα πριν από την κατάσταση ελέγχου και η υπό όρους δήλωση βρίσκεται στο κάτω μέρος του βρόχου. Όπως και στον βρόχο while, εδώ επίσης, το σώμα του βρόχου μπορεί να είναι άδειο καθώς και οι C ++ και Java επιτρέπουν null δηλώσεις ή, μπορεί να υπάρχει μόνο μία δήλωση ή ένα μπλοκ δηλώσεων. Η συνθήκη εδώ είναι επίσης μια έκφραση boolean, η οποία ισχύει για όλες τις μη μηδενικές τιμές.
Σε ένα lo-while βρόχο, ο έλεγχος πρώτα φθάνει στη δήλωση στο σώμα ενός do-while βρόχου. Οι δηλώσεις στο σώμα εκτελούνται πρώτα και έπειτα ο έλεγχος φθάνει στο τμήμα συνθηκών του βρόχου. Η κατάσταση επαληθεύεται και, αν είναι αλήθεια, ο βρόχος επαναλαμβάνεται ξανά και αν η συνθήκη είναι ψευδής, τότε ο έλεγχος συνεχίζει στην επόμενη γραμμή αμέσως μετά τον βρόχο.
Ας το καταλάβουμε εφαρμόζοντας παραπάνω παράδειγμα στο do-while.
// παράδειγμα είναι στην Java. class {public static void κύρια (args []) {int n = 1; κάντε το {system.out.println ("n =" + n); n ++; } ενώ (n <10)}} // εξόδου n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10
Εδώ, η τιμή του n = 1 ο έλεγχος επαναλαμβάνεται στο σώμα του βρόχου, εκτυπώνεται η τιμή του «η» και στη συνέχεια αυξάνεται η τιμή του. Στη συνέχεια, ο έλεγχος επαναλαμβάνεται στην κατάσταση του βρόχου do-while. η κατάσταση επαληθεύεται, η οποία αποδεικνύεται αληθής για το n = 1, οπότε ο βρόχος επανέρχεται και συνεχίζει μέχρι να γίνει ψευδής η κατάσταση.
Διαφορές κλειδιού μεταξύ του χρόνου και της εκτέλεσης του βρόχου
- Ο βρόχος while ελέγχει την κατάσταση κατά την εκκίνηση του βρόχου και αν η κατάσταση είναι ικανοποιημένη δήλωση εντός του βρόχου, εκτελείται. Στο βρόχο do-while, η κατάσταση ελέγχεται μετά την εκτέλεση όλων των δηλώσεων στο σώμα του βρόχου.
- Αν η συνθήκη σε ένα loop while είναι ψευδής, δεν εκτελείται μία μόνο δήλωση εντός του βρόχου και εάν η συνθήκη στον βρόχο "do-while" είναι ψευδής, τότε και το σώμα του βρόχου εκτελείται τουλάχιστον μία φορά, τότε η κατάσταση δοκιμάζεται.
Συμπέρασμα:
Τόσο όταν ο όσο και ο βρόχος do-while είναι η δήλωση επαναλήψεως, αν το θέλουμε πρώτα, η συνθήκη θα πρέπει να επαληθευτεί και τότε οι δηλώσεις εντός του βρόχου πρέπει να εκτελούνται στη συνέχεια, όταν χρησιμοποιείται ο βρόχος while. Αν θέλετε να ελέγξετε την κατάσταση τερματισμού στο τέλος του βρόχου, τότε χρησιμοποιείται ο βρόχος do-while.