C ++ pentru începători
5.5. Instrucțiunea pentru buclă
După cum am văzut, executarea unui program de multe ori constă în repetarea succesiunii instrucțiunilor - atâta timp cât o anumită condiție rămâne adevărată. De exemplu, citim și procesăm înregistrările unui fișier până ajungem la sfârșitul acestuia, sortăm elementele matrice până când indicele devine egal cu dimensiunea matricei minus 1, etc. C ++ oferă trei instrucțiuni pentru organizarea buclelor, în special pentru și în timp, care încep prin verificarea stării. Această verificare înseamnă că bucla se poate termina fără a efectua o simplă sau compusă instrucțiune asociată cu ea. Al treilea tip de buclă, în timp ce face, garantează că organismul va fi executat cel puțin o dată: starea de buclă este verificată după finalizarea acesteia. (În această secțiune vom examina în detaliu buclele for, în secțiunea 5.6, vom dezasambla în timp și în secțiunea 5.7 - facem în același timp.)
Buclele pentru se utilizează în mod obișnuit pentru a procesa structuri de date care au o lungime fixă, cum ar fi un vector sau un vector:
Sintaxa pentru buclă for este:
starea servește la controlul ciclului. În timp ce condiția este evaluată la adevărat, instrucțiunea continuă să fie executată. Instrucțiunea din buclă poate fi simplă sau complexă. Dacă prima condiție este evaluată la falsă, instrucțiunea nu este executată niciodată. Condițiile corecte pot fi scrise astfel:
Expresia este evaluată după executarea instrucțiunii la fiecare iterație a buclă. Acesta este de obicei folosit pentru a modifica o variabilă inițializată într-o instrucțiune de inițializare. Dacă prima condiție este evaluată la falsă, expresia nu este executată niciodată. Expresiile corecte arată astfel:
Pentru următoarele pentru buclă
ordinea calculelor este după cum urmează:
- Instrucțiunea de inițializare este executată o dată înainte de începerea ciclului. În acest exemplu, variabila ix este declarată, care este inițializată la 0.
- Condiția este calculată. Dacă este adevărat, instrucțiunea compus a corpului bucla este executată. În exemplul nostru, în timp ce ix este mai mic decât sz, valoarea ix este atribuită elementelor ivec [ix] și ia [ix]. Când valoarea condiției este falsă, bucla se va opri din execuție. Dacă calcularea primei condiții este falsă, instrucțiunea complexă nu va fi executată.
- Expresia este evaluată. De obicei, este folosit pentru a modifica o variabilă care apare în instrucțiunea de inițializare și este verificată în condiție. În exemplul nostru, ix este mărit cu 1.
Vizibilitatea tuturor obiectelor definite în parantezele instrucțiunii for este limitată la corpul bucla. De exemplu, verificarea iter după buclă va provoca o eroare de compilare:
Exercitarea 5.8
Sunt permise erorile din următoarele pentru bucle? Dacă da, care dintre ele?
Exercitarea 5.9
Imaginați-vă că sunteți instruiți să veniți cu un stil comun de utilizare a buclă pentru în proiectul dvs. Explicați și ilustrați cu exemple regulile pentru utilizarea fiecăreia dintre cele trei părți ale ciclului.
Exercitarea 5.10
Scrieți corpul unei funcții care definește egalitatea a doi vectori. Pentru vectori de diferite lungimi, comparați numai numărul de elemente care corespund celui mai mic dintre cele două. De exemplu, vectorii (0,1,1,2) și (0,1,1,2,3,5,8) sunt considerați egali. Lungimea vectorilor poate fi găsită utilizând funcțiile v1.size () și v2.size ().