Βίντεο: Differential equations, studying the unsolvable | DE1 2024
Όταν βρεθείτε σε βρόχους προγραμματισμού στη γλώσσα C, θα ανακαλύψετε τις χαρές και τα dreads των ατελείωτων, ή άπειρων βρόχων. Αυτοί οι βρόχοι συνεχίζονται για πάντα επειδή είτε ο προγραμματιστής ξέχασε να συμπεριλάβει έναν τρόπο να βγεί από το βρόχο είτε η κατάσταση εξόδου δεν πληρούται ποτέ. Είτε έτσι είτε αλλιώς, οι ατέλειες βρόχοι είναι ένας πόνος.
Αλλά μερικές φορές ένα πρόγραμμα C περιέχει έναν ατελείωτο βρόχο με σκοπό. Αυτός ο τύπος κατασκευής μπορεί να φαίνεται περίεργος, όμως η βάση πολλών σύγχρονων προγραμμάτων είναι ότι κάθονται και περιστρέφονται ενώ περιμένουν κάτι να συμβεί. Ο βρόχος μπορεί να φαίνεται ως εξής:
για το (;;) {check_Keyboard (); check_Mouse (); check_Events (); check_System ();}
Παρατηρήστε ότι οι συνθήκες εντός των παρενθέσεων μετά από τη λέξη-κλειδί λείπουν, κάτι που είναι εντάξει. Το αποτέλεσμα είναι ένας ατελής βρόχος στον οποίο οι δηλώσεις ελέγχονται επανειλημμένα, το ένα μετά το άλλο: Το πρόγραμμα αναζητά δραστηριότητα κάπου. Όταν βρεθεί δραστηριότητα, το πρόγραμμα σβήνει και κάνει κάτι ενδιαφέρον. Αλλά τις περισσότερες φορές, το πρόγραμμα απλά κάθεται σε αυτόν τον τύπο βρόχου, περιμένοντας κάτι να συμβεί. (Ο τυπικός επεξεργαστής κειμένου μπορεί να εκτελέσει χιλιάδες από αυτούς τους βρόχους, καθώς περιμένει ανάμεσα στις πληκτρολογήσεις καθώς πληκτρολογείτε.)
Πληκτρολογήστε αυτόν τον πηγαίο κώδικα και αποθηκεύστε τον στο δίσκο. Στη συνέχεια, συντάξτε και εκτελέστε το πρόγραμμα:
#include int main () {char ch; ("Πρόγραμμα δακτυλογράφησης"). βάζει ("Τύπος μακριά:")? για (;;) {ch = getchar ();} επιστροφή (0);}
Ναι, μπορείτε να πληκτρολογήσετε. Και μπορείτε να δείτε το κείμενό σας στην οθόνη. Αλλά πώς σταματάς;
Για να σταματήσετε, πρέπει να σπάσετε τον ατελείωτο βρόχο, ο οποίος μπορεί να γίνει πατώντας Ctrl + C. Αλλά αυτό δεν είναι ο τρόπος με τον οποίο θέλετε να λειτουργούν τα προγράμματά σας. Αντ 'αυτού, πρέπει να οριστεί ένας όρος εξόδου για τον βρόχο, ο οποίος είναι ο τόπος όπου ξεκινά η λέξη-κλειδί διακοπής.
Τι διάλειμμα είναι να σταματήσετε αμέσως έναν βρόχο (οποιοσδήποτε κύκλος γλώσσας C, όχι μόνο για βρόχους). Όταν ο υπολογιστής βλέπει το σπάσιμο, υποθέτει ότι ο βρόχος γίνεται και συνεχίζεται σαν να πληρούται η τελική κατάσταση του βρόχου:#include int main () {char ch; ("Πρόγραμμα δακτυλογράφησης"). θέτει ("Τύπος μακριά, πατήστε '~' για να τερματίσετε:"); για (?;) {ch = getchar (); αν (ch == '~') {break;}} επιστροφή (0);}
Τώρα ορίζεται μια κατάσταση εξόδου. Αν η σύγκριση στη Γραμμή 12 ελέγχει για να δει εάν έχει εισαχθεί ένας χαρακτήρας ~ (tilde). Αν ναι, ο βρόχος διακόπτεται από τη δήλωση σπάσει.
Αλλάξτε τον πηγαίο κώδικα έτσι ώστε να ταιριάζει με αυτό που μόλις εμφανίστηκε. Σύνταξη και εκτέλεση. Τώρα, μπορείτε να σταματήσετε το πρόγραμμα πληκτρολογώντας τον χαρακτήρα ~.
Σημειώστε ότι η εντολή if μπορεί επίσης να γραφτεί χωρίς τα τιράντες:
αν (ch == '~') σπάσει;
Αυτή η γραμμή μπορεί να είναι λίγο πιο ευανάγνωστη από τη χρήση τιράντες.