Buclele sunt un concept fundamental în programare care vă permit să executați un bloc de cod în mod repetat până când este îndeplinită o condiție specificată. În C, două constructe de buclă utilizate în mod obișnuit sunt while
buclă și do while
buclă. În calitate de programator C începător, înțelegerea modului de utilizare eficientă a acestor bucle este crucială pentru scrierea unui cod eficient și concis. În acest articol, ne vom scufunda adânc în funcționarea while
şi do while
bucle, explorați sintaxa acestora și oferiți exemple practice pentru a vă consolida înțelegerea.
Înainte de a ne aprofunda în specificul while
şi do while
bucle, să înțelegem mai întâi ce sunt buclele și de ce sunt importante. Buclele oferă o modalitate de automatizare a sarcinilor repetitive în programare. În loc să scrieți manual același cod de mai multe ori, puteți utiliza o buclă pentru a executa un bloc de cod în mod repetat, pe baza unei anumite condiții. Acest lucru nu numai că economisește timp și efort, dar face și codul mai ușor de citit și mai ușor de întreținut.
The while
bucla este cea mai simplă construcție de buclă din C. Vă permite să executați în mod repetat un bloc de cod atâta timp cât o condiție specificată este adevărată. Iată sintaxa generală a lui a while
buclă:
while (condition) { // code block to be executed }
The condition
este o expresie booleană care este evaluată înainte de fiecare iterație a buclei. Dacă condiția este adevărată, blocul de cod din interiorul buclei este executat. Acest proces continuă până când condiția devine falsă.
Iată un exemplu simplu care demonstrează utilizarea a while
buclă:
#includeint main() { int count = 0; while (count < 5) { printf("Count: %dn", count); count++; } return 0; }
Ieșire:
Count: 0 Count: 1 Count: 2 Count: 3 Count: 4
În acest exemplu, while
bucla continuă să se execute atâta timp cât valoarea lui count
este mai mică de 5. În interiorul buclei, imprimăm valoarea curentă a count
și creșteți-l cu 1 folosind count++
declaraţie. Bucla se termină când count
ajunge la 5.
Puncte importante de reținut
-
Condiția din a
while
bucla este verificată la începutul fiecărei iterații. Dacă condiția este falsă de la început, corpul buclei nu va fi executat deloc. -
Asigurați-vă că includeți o declarație în buclă care modifică condiția, altfel veți ajunge cu o buclă infinită. În exemplul de mai sus, creștem
count
pentru a se asigura că bucla se termină în cele din urmă. -
Fiți atenți la erorile individuale. În exemplu, bucla rulează de la 0 la 4 (inclusiv), nu de la 1 la 5. Ajustați condiția în consecință în funcție de cerințele dvs.
The do while
bucla este similară cu while
buclă, dar cu o singură diferență cheie: condiția este verificată la sfârșitul fiecărei iterații în loc de la început. Aceasta înseamnă că blocul de cod din interiorul buclei este garantat să se execute cel puțin o dată, chiar dacă condiția este inițial falsă. Iată sintaxa generală a lui a do while
buclă:
do { // code block to be executed } while (condition);
Rețineți punctul și virgulă (;
) după while
stare. Acest lucru este necesar pentru do while
sintaxa buclei.
Să ne uităm la un exemplu care demonstrează utilizarea a do while
buclă:
#includeint main() { int number; do { printf("Enter a number (0 to exit): "); scanf("%d", &number); printf("You entered: %dn", number); } while (number != 0); printf("Exiting the loop.n"); return 0; }
Ieșire (execuție eșantion):
Enter a number (0 to exit): 5 You entered: 5 Enter a number (0 to exit): 10 You entered: 10 Enter a number (0 to exit): 0 You entered: 0 Exiting the loop.
În acest exemplu, do while
bucla solicită utilizatorului să introducă un număr și tipărește numărul introdus. Bucla continuă să se execute până când utilizatorul introduce 0. Observați că corpul buclei este executat cel puțin o dată, chiar dacă utilizatorul introduce 0 imediat.
Când să utilizați do while
vs while
Alegerea între utilizarea unui while
buclă sau a do while
bucla depinde de cerințele specifice ale programului dvs. Iată câteva îndrumări:
-
Folosiți a
while
buclă atunci când doriți să verificați condiția înainte de a executa corpul buclei. Acest lucru este util atunci când bucla nu trebuie să ruleze deloc pe baza condiției inițiale. -
Folosiți a
do while
buclă atunci când doriți să executați corpul buclei cel puțin o dată, indiferent de condiția inițială. Acest lucru este util atunci când trebuie să solicitați utilizatorului introducerea sau să efectuați unele sarcini de configurare înainte de a verifica starea.
Acum că ai o înțelegere solidă while
şi do while
bucle, este timpul să vă puneți cunoștințele în practică. Încercați să rezolvați următoarea problemă:
Scrieți un program C care calculează suma numerelor introduse de utilizator până când utilizatorul introduce un număr negativ. Folosiți a do while
buclă pentru a implementa această funcționalitate.
Iată soluția:
#includeint main() { int number, sum = 0; do { printf("Enter a number (negative to exit): "); scanf("%d", &number); if (number >= 0) { sum += number; } } while (number >= 0); printf("Sum of entered numbers: %dn", sum); return 0; }
În această soluție, folosim a do while
buclă pentru a solicita în mod repetat utilizatorului un număr. Dacă numărul introdus este nenegativ, îl adăugăm la sum
variabilă. Bucla continuă până când utilizatorul introduce un număr negativ. În cele din urmă, imprimăm suma tuturor numerelor introduse.
- Buclele vă permit să executați în mod repetat un bloc de cod pe baza unei condiții.
- The
while
bucla verifică condiția la începutul fiecărei iterații și execută corpul buclei dacă condiția este adevărată. - The
do while
bucla execută mai întâi corpul buclei și apoi verifică starea la sfârșitul fiecărei iterații, asigurându-se că corpul buclei rulează cel puțin o dată. - Asigurați-vă că includeți o declarație în interiorul buclei care modifică condiția pentru a evita bucle infinite.
- Alegeți între
while
şido while
bucle în funcție de dacă doriți să verificați condiția înainte sau după executarea corpului buclei.
Felicitări! Acum ai o înțelegere solidă while
şi do while
bucle în C. Aceste bucle sunt instrumente esențiale în setul de instrumente de programare, permițându-vă să automatizați sarcini repetitive și să creați cod mai eficient și mai lizibil. Nu uitați să exersați utilizarea buclelor în diferite scenarii pentru a vă consolida înțelegerea și pentru a vă dezvolta abilitățile de rezolvare a problemelor.
Pe măsură ce vă continuați călătoria ca programator C, veți întâlni constructe de buclă mai avansate, cum ar fi for
buclă și bucle imbricate. Continuați să explorați și să experimentați cu diferite variații de buclă pentru a deveni un programator C competent.
- Care este principala diferență dintre a
while
buclă și ado while
buclă?- Principala diferență este că a
while
loop verifică condiția înainte de a executa corpul buclei, în timp ce ado while
bucla execută mai întâi corpul buclei și apoi verifică condiția.
- Principala diferență este că a
- Poate a
while
buclă executată de zero ori?- Da, dacă condiția este falsă de la început,
while
bucla nu se va executa deloc.
- Da, dacă condiția este falsă de la început,
- Este necesar să folosiți bretele
{}
pentru un corp buclă cu o singură declarație?- Deși nu este obligatoriu, este considerată o practică bună să folosiți întotdeauna bretele, chiar și pentru corpurile buclei cu o singură declarație. Îmbunătățește lizibilitatea și reduce șansele de erori la modificarea ulterioară a codului.
- Ce se întâmplă dacă uit să includ o instrucțiune care modifică condiția buclei?
- Dacă uitați să includeți o instrucțiune care modifică condiția buclei, veți ajunge cu o buclă infinită. Bucla va continua să se execute pe termen nelimitat, provocând blocarea sau blocarea programului.
- Pot folosi un
break
declarație de a părăsi o buclă prematur?- Da, puteți folosi
break
declarație de a părăsi prematur o buclă. Când este întâlnit,break
instrucțiunea încheie imediat bucla și transferă controlul către următoarea instrucțiune după buclă.
- Da, puteți folosi
Sper că ați găsit acest articol util pentru înțelegere while
şi do while
bucle în C. Dacă mai aveți întrebări sau aveți nevoie de clarificări cu privire la orice subiect, nu ezitați să întrebați. Codare fericită și nu uitați să împărtășiți acest articol colegilor dvs. programatori C!