Operatorul unui buclă are următorul format:
pentru (init_expression; loop_condition; loop_expression) declarație de program;
Trei expresii în paranteze pentru FOR loop, descrie condițiile ciclului de program.
Init_expression primul parametru utilizat pentru a stabili valorile ciclului inițial (pentru a stabili condițiile inițiale ale buclei)
A doua componentă definește starea loop_condition sau condițiile în care va fi din bucla. Repetiția va avea loc atâta timp cât această condiție (sau condiții) sunt îndeplinite. În cazul în care condiția nu este îndeplinită, atunci ciclul se termină imediat.
Al treilea parametru loop_expression executat de fiecare dată când procesarea se termină corpul buclei, adică, Declarație de program (loop_expression expresie modifică condițiile date de init_expression exprimare).
Cel mai adesea, init_expression expresie și operatorii loop_expression sunt sarcini sau apeluri de funcții, iar a doua loop_condition de expresie - o expresie a unei relații sau o expresie logică.
Oricare dintre cele trei părți pot fi omise, dar si virgulele trebuie să rămână în locurile lor. Omiterea init_expression sau loop_expression, operațiunile apoi corespunzătoare sunt efectuate. În cazul în care condițiile de testare loop_condition picătură, în mod implicit, se consideră că menținerea condiției ciclului este întotdeauna adevărat, iar apoi ciclul va fi fără sfârșit (bucla infinită va avea loc). și anume dacă este omis loop_condition, în mod implicit, în loc să-l substituie valoarea TRUE.
Când doriți să executați mai multe declarații, acestea trebuie să fie închise în paranteze, de exemplu, unitate:
În cazul de față corpul buclei este in paranteze.
proiectare ciclu, pus în aplicare de către operator pentru, pot fi formate și, de asemenea, în timp ce operatorul după cum urmează:
O excepție este utilizarea continua să funcționeze.
Tsiklfor (; loop_condition;) declarație de program;
cu init_expression redus, loop_expression ciclu echivalent
în timp ce (loop_condition) declarație de program;
toate expresiile echivalente în pămînt ciclul
în timp ce (TRUE) declarația de program;
și anume echivalent cu o buclă infinită. Acest ciclu poate fi întreruptă doar de ieșire explicite din acesta prin intermediul operatorilor pauză, Goto, întoarcere, conținute în declarația de program iteratie.
Operatorii relaționali sunt listate în tabel. 6.1.
mai mare sau egal
În limba programului pentru a aplica un bucle imbricate, fiecare dintre care este controlat de ciclul său variabil și relația acesteia (a doua expresie în paranteze rotunde pentru operator). bucle imbricate pot merge direct la unul sau altul formează un corp în buclă prin intermediul bretele. De asemenea, este posibil să se utilizeze două variabile de index pentru ciclul de pornire de inițializare cu incrementarea ulterioară (creștere) sau decrementare (scădere).
În ciuda asemănarea cu ciclurile iterative pentru Pascal și Ada, sau cicluri iterative face Fortran sau PL / 1, limbajul C pentru bucla locală nu este copia lor semantică. Pentru bucla este limbajul C este mai frecventă decât pentru bucle, și de a face alte limbi. Spre deosebire de aceste cicluri, în general, numărul de iterații în bucla pentru limbajul C nu poate fi determinată înainte de efectuarea acestui ciclu.
Ciclul de alternativă și ciclul său în timp ce semantically aproape echivalente, dar, așa cum este indicat în funcțiune (Ritchie, D.M. 1980. Programming Language. - Manual de referință / ATT Bell Laboratories, Murray Hill, New Jersey 07974), nu sunt identice. De exemplu, considerăm cazul în care operatorul este o declarație de program continuă declarație sau declarație compus care conține declarația continuă. Acțiunea operatorului este de a continua tranziția spre sfârșitul ciclului, care are implicații diferite pentru pentru buclă și echivalentul acesteia sub forma unei bucle în timp. În cazul ciclului de exprimare loop_expression este executat pentru a calcula valoarea loop_condition expresiei, în timp ce într-un ciclu echivalent în timp ce loop_expression expresie omisă.
Flexibilitatea proiectării pentru - o consecință a metodei de utilizare a expresiilor în caietul de sarcini ciclu. Există mai multe posibilități de utilizare a ciclului, dintre care unele sunt prezentate mai jos.
- Puteți utiliza operația de zoom pentru a factura în ordine crescătoare:
- Poate fi utilizat reduce operațiunea de numărare în ordine descrescătoare în locul contului în ordine crescătoare:
- Opțional, scor câte doi zeci etc.:
- Posibilitatea de a conta cu ajutorul simbolurilor, nu doar numere:
Făcând acest lucru operatorul va imprima toate literele de la A la Z, împreună cu codurile lor ASCII. Această declarație funcționează, deoarece caracterele din memoria aparatului sunt plasate sub formă de numere, și, prin urmare, acest fragment este realizat prin utilizarea de numere întregi.
- Puteți verifica performanța unor condiții arbitrare, altele decât condițiile impuse de numărul de iterații. Luați în considerare exemplul programului de cuburi de masă de imprimare de numere întregi:
Acum, înlocuiți specificația
pentru (num = 1; num<=6; num++)
pentru (num = 1; num<6; num++)
Ar fi de dorit, în acest caz, dacă ne-am implicat mai mult în limitarea maxim de cuburi interval de numere, mai degrabă decât numărul de iterații.
- Este posibil să se facă valoarea unor valori crescute într-o geometric, mai degrabă decât în progresie aritmetică, adică în loc de a adăuga o valoare fixă pe fiecare ciclu pentru a efectua etapa de multiplicare:
Această valoare fragment de program al variabilei x se înmulțește cu 1,1 la fiecare etapă a ciclului, care crește cu 10%. Rezultatul este după cum urmează:
Datoria ta este acum 100.00.Vash datoria este acum datoria 110.00.Vash este acum 121.00.Vash datoria este acum 133.10.Vash datoria este acum 146.41.- O a treia expresie poate fi orice expresie bine formată. Oricare ar fi pe termen posibil să fi indicat, valoarea sa se va schimba cu fiecare iterație:
Vă rugăm să rețineți că specificația ciclului verifică valoarea y, în loc de x. In fiecare dintre cele trei expresii care controlează funcționarea pentru bucla poate fi folosit orice variabile.
In timp ce acest exemplu este corectă, ea nu poate servi ca o ilustrare a stilului de programare bun. Programul ar fi privit cu mult mai ușor de înțeles dacă nu am fi amestecat procesul de modificare a variabilei bucla cu calcule algebrice.
- Puteți omite chiar și una sau mai multe expresii, dar simbolurile nu pot fi omise „virgulă“. iteratie
va executa un număr infinit de ori, deoarece starea gol este considerat întotdeauna adevărat.
- Prima expresie nu trebuie să inițializa o variabilă. In schimb, de exemplu, ar fi printf declarație (). Este necesar doar să ne amintim că prima expresie este evaluată doar o singură dată, înainte de restul ciclului va fi efectuată.
În acest cod primul mesaj este scoasă la ieșire pentru imprimare o dată și apoi fiind numere de intrare primite până la numărul 6 nu este primit.
- Parametrii din expresiile care sunt în caietul de sarcini ciclu poate fi modificat în operațiile din corpul buclei. De exemplu, să presupunem că aveți o serie cu specificația de forma următoare:
Și dacă programul nostru, după mai multe iterații determină că valoarea t este prea mică sau mare, în cazul în care declarația se poate schimba valoarea din interiorul buclei. Programul interactiv, utilizatorul poate schimba această setare în bucla.
Pentru a rezuma. În declarația pentru folosește trei expresii care controlează performanța bucla. Ele sunt separate prin simbolul „virgulă“. Expresia de inițializare este evaluată o singură dată înainte de a executa oricare dintre operatorii ciclului. În cazul în care expresia de test este adevărat, sau nu este egal cu zero, corpul este executat o singură dată. Se calculează apoi valoarea corectată a expresiei, iar valoarea expresiei de testat se determină din nou. pentru operator - o buclă cu o condiție prealabilă. Decizia cu privire la posibilitatea de a efectua încă o dată corpul buclei sau nu, adoptate înainte de trecerea acestuia. Prin urmare, se poate întâmpla ca organismul nu va fi niciodată împlinit. Operatorul definește un corp inelar poate fi atât de simplu și compozit.
Operațiunea „virgulă“ crește bucla de flexibilitate pentru, permițându-vă să includă în specificația sa initializarea câteva sau declarații corective.