Video: Section, Week 3 2024
Când intri în buclele de programare în limbajul C, descoperi bucuriile și grotele de bucle infinite sau infinite . Aceste bucle continuă pentru totdeauna deoarece fie programatorul a uitat să includă o cale de ieșire din bucla, fie condiția de ieșire nu este niciodată îndeplinită. Oricum, buclele nesfârșite reprezintă o durere.
Dar, uneori, un program C conține o buclă nesfârșită. Acest tip de construcție poate părea ciudat, totuși baza multor programe moderne este aceea că stau și se rotesc în timp ce așteaptă să se întâmple ceva. Buclele pot arăta astfel:
pentru (;;) {check_Keyboard (); check_Mouse (); check_Events (); check_System ();}
Observați că condițiile din interiorul parantezelor după cuvântul cheie pentru cuvinte cheie lipsesc, ceea ce este bine. Rezultatul este o buclă nesfârșită în care declarațiile sunt verificate în mod repetat, una după alta: programul caută activitate undeva. Când se găsește activitate, programul se stinge și face ceva interesant. Dar, de cele mai multe ori, programul se află doar în acest tip de buclă, așteptând să se întâmple ceva. (Procesorul tipic de texte poate efectua mii de astfel de bucle deoarece așteaptă între apăsările de taste pe măsură ce introduceți textul.)
Introduceți acest cod sursă și salvați-l pe disc. Apoi compilați și executați programul:
#include int main () {char ch; pune ("Programul de tiparire"); pune ("Type away:"); pentru (;;) {ch = getchar ();} întoarcere (0);}
Da, puteți tasta. Și puteți vedea textul pe ecran. Dar cum te opresti?
Pentru a opri, trebuie să rupeți buclă fără sfârșit, care se poate face apăsând pe Ctrl + C. Dar asta nu este modul în care doriți ca programele dvs. să funcționeze. În schimb, pentru buclă trebuie să fie definită o condiție de ieșire, unde se pune în joc cuvântul cheie break.
Dezvoltatorii limbajului C știau că, în unele cazuri, o buclă trebuie să fie întreruptă pe baza unor condiții care nu au putut fi anticipate sau configurate în instrucțiunea for. Deci, în înțelepciunea lor, au introdus cuvântul cheie de pauză.
Ce pauză are să închizi imediat o buclă (orice buclă de limbaj C, nu doar pentru bucle). Când calculatorul vede o pauză, presupune doar că buclele se termină și continuă ca și cum condiția de încheiere a buclei a fost îndeplinită:
#include int main () {char ch; pune ("Programul de tiparire"); pune ("Apăsați tasta" ~ "pentru a renunța:"); pentru (;;) {ch = getchar (); dacă (ch == '~') {break;}} return (0);}
Acum este definită o condiție de ieșire. Dacă comparația din linia 12 verifică dacă este introdus un caracter ~ (tilde). Dacă da, bucla este oprită de instrucțiunea de pauză.
Schimbați codul sursă astfel încât să corespundă ceea ce a fost afișat. Compilați și rulați. Acum, puteți opri programul tastând caracterul ~.
Rețineți că instrucțiunea if poate fi scris și fără acolade:
dacă (ch == '~') pauză;
Această linie poate fi un pic mai ușor de citit decât folosirea brațelor.