Diferența dintre bucla for și while

Autor: Laura McKinney
Data Creației: 2 Aprilie 2021
Data Actualizării: 10 Mai 2024
Anonim
for and while Loops
Video: for and while Loops

Conţinut


În C ++ și Java, instrucțiunile de iterare, pentru buclă, loop, loop și do-while, permit executarea repetată a setului de instrucțiuni, până când condiția este adevărată și se încheie imediat ce condiția devine falsă. Condițiile din declarațiile de iterație pot fi predefinite ca în buclă sau buclă deschisă ca în buclă.

Există mai multe variante de buclă „pentru” în C ++ pentru a spori aplicabilitatea, puterea și flexibilitatea acestuia. De exemplu, bucla for ne permite să utilizăm mai mult de o variabilă în interiorul buclei pentru a o controla și utilizarea funcției de convergență cu bucla „for”. În schimb, cu bucla while nu putem folosi multe variante, care trebuie utilizate cu sintaxa standard.

Există unele diferențe majore între bucle pentru și în timp, care sunt explicate în continuare cu ajutorul unui grafic de comparație.

  1. Diagramă de comparație
  2. Definiție
  3. Diferențele cheie
  4. Concluzie

Diagramă de comparație

Baza pentru comparațiepentru in timp ce
Declaraţiefor (initializare; conditie; iterare) {
// corpul pentru buclă
}
while (stare) {
declarații; // corpul buclei
}
FormatInițializarea, verificarea condițiilor, declarația de iterație sunt scrise în partea de sus a buclei.Doar inițializarea și verificarea condițiilor se face în partea de sus a buclei.
UtilizareBucla for folosită numai atunci când știam deja numărul de iterații.Bucla de timp folosită numai atunci când numărul de iterații nu este cunoscut exact.
CondițieDacă condiția nu este introdusă pentru buclă, atunci bucla iterează infinit de ori.Dacă condiția nu este introdusă în bucla de timp, aceasta furnizează o eroare de compilare.
InițializareaÎn buclă, inițializarea odată făcută nu se repetă niciodată.În timpul buclei, dacă inițializarea se face în timpul verificării condițiilor, inițializarea se face de fiecare dată când bucla se iterează.
Declarație de iterațieÎn instrucțiunea de iterare a buclei este scrisă sus, prin urmare, se execută numai după ce toate instrucțiunile din buclă sunt executate.În bucla while, declarația de iterație poate fi scrisă oriunde în buclă.


Definiția for loop

În Java, există două forme de pentru bucle. Prima formă este forma „tradițională”, iar a doua este „pentru fiecare”.

Sintaxă

Forma generală a tradiționalului pentru instrucțiunea buclă.

for (inițializare; condiție; iterație) {// corpul buclei}

  • Inițializarea - Initializarea variabilei de control a buclei pentru bucla se execută o singură dată, în timpul primei iterații a buclei. Aici, variabila de control a buclei este inițiată, uneori dacă variabila buclă nu este din nou folosită nicăieri în program și este utilizată doar ca variabilă de control a buclei, atunci este declarată și inițiată în bucla „pentru”.
  • Condiție - Starea buclei „for” este executată de fiecare dată când este repetată bucla.
  • Creșterea și iterarea- Instrucțiunea de iterare este o expresie care crește sau micșorează variabila de control a buclei.

Ori de câte ori bucla este executată, condiția sa de inițializare este executată mai întâi; apoi starea este verificată. Dacă condiția este îndeplinită, corpul buclei este executat, atunci instrucțiunea de iterație este executată. Apoi, din nou, este verificată condiția pentru a ști dacă bucla va itera în continuare sau se va încheia.


În Java, declarația de inițializare și declarația de iterație pot include mai multe instrucțiuni. Fiecare declarație este separată de o altă virgulă, în Java, o virgulă este un separator, în timp ce, în C ++, „virgulă” este un operator care poate fi utilizat în orice expresie valabilă.

pentru-fiecare buclă și sintaxa ei

Formularul „pentru fiecare” este îmbunătățit pentru buclă. Forma generală a fiecărei bucle este următoarea.

for (type iter_variable: collection) statement-block

Aici, „tipul” specifică tipul variabilei de iterație, urmată de variabila de iterație. Variabila de iterație va primi elementul din variabila de colectare. Tipul trebuie să fie același cu tipul de elemente stocate în variabila de colectare. Forma pentru fiecare buclă automatizează iterația buclei de la început până la accesarea finală a valorilor în ordine secvențială.

Exemplu

Există diferite tipuri de colecție utilizate pentru buclă. Să discutăm cu un tablou ca o colecție.

public class Main {public static void main (String args) {int array = {10, 20, 30, 40, 50, 60}; int add = 0; for (int c: array) {System.out.ln ("valoare în c" + c); add = add + c; } System.out.ln ("additon de elemente de matrice este" + add); }} // valoarea de ieșire în valoarea c 10 în valoarea c 20 în valoarea c 30 în valoarea c 40 în c c valoarea 50 în c 60 adiția elementelor de matrice este 210

Aici, „c” este o variabilă de iterație; acesta primește valorile din tablou, câte unul, de la cel mai mic indice la cel mai înalt indice din tablă. Aici, bucla se iterează până când sunt examinate toate elementele tabloului. Este posibil să închei bucla între ele folosind „pauză”. Cu toate acestea, modificarea variabilei de iterație nu afectează tabloul, deoarece este doar o variabilă de citire.

Definiția while loop

in timp ce bucla este cea mai fundamentală buclă disponibilă în C ++ și Java. Funcționarea unei bucle de timp este similară atât în ​​C ++ cât și în Java.

Sintaxă

Declarația unei bucle de timp este următoarea

while (condition) {instructiuni; // corpul buclei}

Bucla while verifică inițial condiția și apoi execută declarațiile până când condiția din while loop se dovedește a fi adevărată. Condiția în bucla while poate fi orice expresie booleană. Când o expresie returnează orice valoare non-zero, atunci condiția este adevărată și dacă expresia returnează o valoare zero, condiția devine falsă.

Dacă condiția devine adevărată, atunci bucla se iterează, iar dacă condiția devine falsă, controlul trece la următoarea linie a codului urmată imediat de buclă. Instrucțiunile sau bucla de corp pot fi fie o declarație goală, fie o singură instrucțiune sau un bloc de declarații.

Exemplu

Să discutăm modul de funcționare a unei bucle de timp. În exemplul de mai jos, codul va fi de la 1 la 10.

// exemplu este în Java. public class Main {public static void main (String args) {int n = 0; în timp ce (n <10) {n ++; System.out.ln ("n =" + n); }}} // ieșire n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10

Aici, valoarea inițială a „n” este 0, ceea ce face ca condiția să fie adevărată în buclă. Controlul intră apoi în corpul buclei while și valoarea „n” se mărește în conformitate cu prima afirmație din corpul unei bucle while. Valoarea „n” este editată, apoi controlul revine la condiție într-o buclă de timp, acum valoarea „n” este 1 care îndeplinește din nou condiția, iar corpul buclei este executat din nou. Aceasta continuă până când condiția este adevărată, imediat ce condiția devine falsă, bucla este încheiată.

Ca și bucla „pentru”, bucla „while” poate de asemenea inițializa variabila de control din partea de sus a buclei, adică în timpul verificării condițiilor.

// de exemplu while ((ch = getchar ())! = A) {System.out.ln ("Alfabetul de intrare" + ch); }

Aici este inițializată variabila de control „ch”, iar starea buclei este verificată în partea de sus a buclei.

Notă:

Poate fi o buclă pentru o buclă sau o perioadă de timp, dacă în corpul buclei există o singură afirmație, bretelele cret nu sunt necesare în această condiție.

  1. În pentru bucla, inițializarea, verificarea condițiilor și incrementarea sau micșorarea variabilei de iterare se face explicit în sintaxa unei bucle. Spre deosebire, în in timp ce bucla putem doar inițializa și verifica starea în sintaxa buclei.
  2. Când suntem conștienți de numărul de iterații care trebuie să apară într-o execuție a unei bucle, atunci vom folosi pentru buclă. Pe de altă parte, dacă nu suntem conștienți de numărul de iterații care trebuie să apară într-o buclă, atunci vom folosi in timp ce buclă.
  3. Dacă nu reușești să introduci declarația de stare pentru bucla, va duce la o iterație infinită a unei bucle. În schimb, dacă nu reușiți să puneți instrucțiunea condiție în in timp ce bucla va duce la o eroare de compilare.
  4. Declarația de inițializare în sintaxa lui pentru bucla se execută o singură dată la începutul buclei. În schimb, dacă in timp ce bucla poartă declarația de inițializare în sintaxa sa, apoi instrucțiunea de inițializare în bucla while se va executa de fiecare dată când bucla se iterează.
  5. Declarația de iterație din pentru bucla se va executa după executarea corpului pentru buclă. Dimpotrivă, declarația de iterație poate fi scrisă oriunde în corp in timp ce bucla deci, pot exista unele declarații care se execută după executarea instrucțiunii de iterație în corpul buclei while.

Concluzie:

Ambele bucle for and loop sunt ambele instrucțiuni de iterație, dar ambele au caracteristica lor distinctă. Bucla for are toate declarațiile sale (inițializare, condiție, iterație) în partea de sus a corpului buclei. În mod invers, în timp ce bucla doar inițializarea și starea se află în partea de sus a corpului de buclă și iterația poate fi scrisă oriunde în corpul buclei.