logo

bucla For vs. While în C

Înțelegerea diferenței dintre o buclă for și o buclă while

Instrucțiunile de iterație din C++, cum ar fi bucla for, bucla while și bucla do-while, permit executarea în mod repetat a unui set de instrucțiuni până când condiția este adevărată și apoi se încheie când condiția este falsă. Declarațiile de iterație pot avea condiții predefinite, cum ar fi într-o buclă for, sau condiții deschise, cum ar fi într-o buclă while.

În C++, o varietate de variații de buclă „for” sunt implicate pentru a crește aplicabilitatea, puterea și flexibilitatea limbajului. De exemplu, bucla for ne permite să controlăm bucla folosind mai multe variabile în interiorul acesteia, precum și utilizarea funcției de converge cu bucla „for”. În schimb, nu putem folosi multe variații cu bucla while; trebuie folosit cu sintaxa standard.

Există unele diferențe semnificative între buclele for și while, care sunt explicate în continuare folosind o diagramă de comparație.

șir de caractere java cmp
bucla For vs. While în C

For Loop este definit ca

Există două tipuri de bucle for în Java. Prima este forma „tradițională”, în timp ce a doua este forma „pentru fiecare”.

Cea mai generală formă a unei instrucțiuni for loop.

 for (initialization; condition; iteration) { //body of for loop } 
    Inițializare:Variabila de control a buclei for este inițializată o singură dată, în timpul primei iterații a buclei. Variabila de control al buclei este inițializată aici; dacă variabila buclă nu este utilizată din nou în program și este folosită doar ca variabilă de control a buclei, este atât declarată, cât și inițializată în bucla „for”.Condiție:Condiția buclei „for” este executată de fiecare dată când bucla este iterată.
  • Instrucțiunea de iterație este o expresie care crește sau decrește variabila de control al buclei.

Când bucla este executată, condiția de inițializare este executată mai întâi, urmată de verificarea condiției. Dacă condiția este îndeplinită, corpul buclei este executat, urmat de instrucțiunea de iterație. Condiția este apoi verificată din nou pentru a determina dacă bucla se va itera mai departe sau se va termina.

În Java, instrucțiunile de inițializare și de iterație pot conține ambele instrucțiuni multiple. O virgulă separă fiecare afirmație; în Java, virgula este un separator; în C++, virgula este un operator care poate fi folosit în orice expresie validă.

Sintaxa buclei for-each

Formularul „for-each” este o versiune mai avansată a buclei for. Bucla for-each ia următoarea formă generală.

 for(type iter_variable: collection) statement-block 

Parametrul „tip” specifică tipul de variabilă de iterație, care este urmată de variabila de iterație. Elementul din variabila de colecție va fi transmis variabilei de iterație. Tipul trebuie să se potrivească cu tipul de elemente din variabila de colecție. Forma for-each a buclei for automatizează iterația buclei de la început până la sfârșit, accesând valorile în ordine secvențială.

Exemplu

Există diferite tipuri de colecții care pot fi folosite cu o buclă for. Să vorbim despre asta folosind o matrice ca colecție.

șir comparare c#
 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.println( 'value in c ' + c); add = add+c; } System.out.println('additon of array elements is ' +add); } } 

Ieșire:

 value in c 10 value in c 20 value in c 30 value in c 40 value in c 50 value in c 60 additon of array elements is 210 

„c” este o variabilă de iterație în acest caz; primește valorile din array[], una câte una, de la cel mai mic la cel mai mare indice din matrice. Bucla iterează până când toate elementele matricei sunt examinate. Bucla poate fi întreruptă în mijloc folosind „break”. Modificarea variabilei de iterație, pe de altă parte, nu are nici un efect asupra matricei, deoarece este o variabilă numai pentru citire.

bucla while este definită ca

Bucla while este cea mai elementară buclă atât în ​​C++, cât și în Java. Funcționarea unei bucle while este similară în C++ și Java.

Sintaxă

Următoarea este declarația buclei while:

 while ( condition) { statements; //body of loop } 

Bucla while verifică mai întâi condiția și apoi execută instrucțiunile până când condiția din bucla while este adevărată. Într-o buclă while, condiția poate fi orice expresie booleană. Când o expresie returnează o valoare diferită de zero, condiția este adevărată; când returnează o valoare zero, condiția este falsă.

Dacă condiția este adevărată, bucla se repetă; dacă condiția este falsă, controlul este transmis liniei de cod imediat după buclă. Bucla de corp sau instrucțiunile pot fi o instrucțiune goală, o singură instrucțiune sau un bloc de instrucțiuni.

Exemplu

Să vedem cum funcționează o buclă while. Codul din exemplul de mai jos se va imprima de la 1 la 10.

procesare de hacking
 public class Main { public static void main (String args[]) { int n=0; while(n<10) { n++; system.out.println('n=" +n); } } } &lt;/pre&gt; &lt;p&gt; &lt;strong&gt;Output:&lt;/strong&gt; &lt;/p&gt; &lt;pre&gt; n=1 n=2 n=3 n=4 n=5 n=6 n=7 n=8 n=9 n=10 &lt;/pre&gt; &lt;p&gt;The initial value of " n' in this case is 0, which makes the condition while loop true. control then enters loop's body, where value of 'n' incremented accordance with first statement.< p> <p>The value of &apos;n&apos; is printed, then control returns to the condition in a while loop, where the value of &apos;n&apos; is now 1, satisfying the condition once more, and the body of the loop is executed once more. This continues until the condition becomes false, at which point the loop is terminated.</p> <p>The &apos;while&apos; loop, like the &apos;for&apos; loop, can initialise the control variable at the beginning of the loop, i.e. during condition checking.</p> <pre> //for example while((ch = getchar( ) ) != &apos;A&apos;) { System.out.println(&apos; The input alphabet &apos; +ch); } </pre> <p>At the top of the loop, the control variable &apos;ch&apos; is initialised, and the loop&apos;s condition is verified.</p> <h4>Note: If there is only one statement in the body of the loop, whether it is a for loop or a while loop, the curly braces are not required.</h4> <h3>In C, what is the difference between a for loop and a while?</h3> <table class="table"> <tr> <th>Parameters</th> <th>For Loop</th> <th>While Loop</th> </tr> <tr> <td> <strong>Declaration</strong> </td> <td>for(initialization ; condition ; iteration ) { <br> //body of &apos;for&apos; loop <br> }</td> <td>initialization <br>while ( condition ) { <br>statements; <br>//body of loop <br>}</td> </tr> <tr> <td> <strong>Format.</strong> </td> <td>At the top of the loop, initialization, condition checking, and iteration statements are written.</td> <td>At the top of the loop, only initialization and condition checking are performed.</td> </tr> <tr> <td> <strong>Use.</strong> </td> <td>The &apos;for&apos; loop was only used when the number of iterations was already known.</td> <td>When the number of iterations is unknown, the &apos;while&apos; loop is used.</td> </tr> <tr> <td> <strong>Condition.</strong> </td> <td>If the condition is not included in the &apos;for&apos; loop, the loop iterates indefinitely.</td> <td>If the condition is not included in the &apos;while&apos; loop, a compilation error occurs.</td> </tr> <tr> <td> <strong>Initialization</strong> </td> <td>The initialization is never repeated in a &apos;for&apos; loop.</td> <td>If initialization is performed during condition checking in a while loop, initialization is performed each time the loop iterates.</td> </tr> <tr> <td> <strong>Iteration assertion</strong> </td> <td>Because the iteration statement in the &apos;for&apos; loop is written at the top, it executes only after all statements in the loop have been executed.</td> <td>The iteration statement in a &apos;while&apos; loop can be written anywhere in the loop.</td> </tr> </table> <h2>The Key Differences Between for and while loop</h2> <ul> <li>Initialization, condition checking, and increment or decrement of iteration variables are all done explicitly in the loop syntax only. In contrast, in the while loop, we can only initialise and check the condition in the loop syntax.</li> <li>When we know the number of iterations that must occur in a loop execution, we use the for loop. On the other hand, if we do not know how many iterations must occur in a loop, we use a while loop.</li> <li>If you do not include a condition statement in the for loop, the loop will loop indefinitely. In contrast, failing to include a condition statement in the while loop will result in a compilation error.</li> <li>The initialization statement in the for loop syntax is only executed once at the beginning of the loop. If the while loop&apos;s syntax includes an initialization statement, the initialization statement will be executed each time the loop iterates.</li> <li>The iteration statement in the for loop will run after the body of the for loop. On the contrary, because the iteration statement can be written anywhere in the body of the while loop, there may be some statements that execute after the iteration statement in the body of the while loop is executed.</li> </ul> <h2>Conclusion</h2> <p>Loops are thus a collection of commands that must be used in a specific order. If the loop structure is incorrect, the programming will display the syntax error. Loops run to obtain a result or to satisfy a condition or set of conditions. It is the foundation of all programming languages.</p> <p>During execution, the loop structure asks a question and executes until the answer is satisfactory. The same question is asked again and again until the new statement is applied. The looping process continues indefinitely until the programme reaches a breakpoint. In the event that the breaking point is not reached, the programme will crash.</p> <p>The for and while loops are both conditional statements. A for loop is a single-line command that will be executed repeatedly. While loops can be single-lined or contain multiple commands for a single condition.</p> <p>Both the for loop and the while loop are important in computer languages for obtaining results. The condition is met if the command syntax is correct.</p> <p>Both the for loop and the while loop are iteration statements, but they have distinct characteristics. The for loop declares everything (initialization, condition, iteration) at the top of the loop body. In contrast, only initialization and condition are at the top of the body of the loop in a while loop, and iteration can be written anywhere in the body of the loop.</p> <hr></10)>

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

Notă: Dacă există o singură instrucțiune în corpul buclei, fie că este o buclă for sau o buclă while, acoladele nu sunt necesare.

În C, care este diferența dintre o buclă for și a while?

Parametrii Pentru Loop While Loop
Declaraţie pentru(inițializare; condiție; iterație) {
//corpul buclei „for”.
}
initializare
în timp ce (condiție) {
declarații;
//corpul buclei
}
Format. În partea de sus a buclei sunt scrise instrucțiunile de inițializare, verificarea condiției și iterație. În partea de sus a buclei, sunt efectuate doar inițializarea și verificarea condițiilor.
Utilizare. Bucla „for” a fost folosită numai atunci când numărul de iterații era deja cunoscut. Când numărul de iterații este necunoscut, se utilizează bucla „while”.
Condiție. Dacă condiția nu este inclusă în bucla „for”, bucla se repetă la nesfârșit. Dacă condiția nu este inclusă în bucla „while”, apare o eroare de compilare.
Inițializare Inițializarea nu se repetă niciodată într-o buclă „for”. Dacă inițializarea este efectuată în timpul verificării condiției într-o buclă while, inițializarea este efectuată de fiecare dată când bucla repetă.
Afirmație de iterație Deoarece instrucțiunea de iterație din bucla „for” este scrisă în partea de sus, se execută numai după ce toate instrucțiunile din buclă au fost executate. Declarația de iterație într-o buclă „while” poate fi scrisă oriunde în buclă.

Diferențele cheie între bucla for și while

  • Inițializarea, verificarea condițiilor și creșterea sau decrementarea variabilelor de iterație sunt toate efectuate în mod explicit numai în sintaxa buclei. În schimb, în ​​bucla while, putem doar să inițializam și să verificăm condiția din sintaxa buclei.
  • Când cunoaștem numărul de iterații care trebuie să apară într-o execuție a buclei, folosim bucla for. Pe de altă parte, dacă nu știm câte iterații trebuie să apară într-o buclă, folosim o buclă while.
  • Dacă nu includeți o instrucțiune de condiție în bucla for, bucla va fi buclă pe termen nelimitat. În schimb, neincluderea unei instrucțiuni de condiție în bucla while va duce la o eroare de compilare.
  • Instrucțiunea de inițializare din sintaxa buclei for este executată o singură dată la începutul buclei. Dacă sintaxa buclei while include o instrucțiune de inițializare, instrucțiunea de inițializare va fi executată de fiecare dată când bucla repetă.
  • Declarația de iterație din bucla for va rula după corpul buclei for. Dimpotrivă, deoarece instrucțiunea de iterație poate fi scrisă oriunde în corpul buclei while, pot exista unele instrucțiuni care se execută după ce instrucțiunea de iterație din corpul buclei while este executată.

Concluzie

Buclele sunt astfel o colecție de comenzi care trebuie utilizate într-o anumită ordine. Dacă structura buclei este incorectă, programarea va afișa eroarea de sintaxă. Buclele rulează pentru a obține un rezultat sau pentru a satisface o condiție sau un set de condiții. Este baza tuturor limbajelor de programare.

În timpul execuției, structura buclei pune o întrebare și se execută până când răspunsul este satisfăcător. Aceeași întrebare este pusă din nou și din nou până când noua declarație este aplicată. Procesul de buclă continuă la nesfârșit până când programul atinge un punct de întrerupere. În cazul în care punctul de rupere nu este atins, programul se va bloca.

Buclele for și while sunt ambele instrucțiuni condiționale. O buclă for este o comandă cu o singură linie care va fi executată în mod repetat. Buclele While pot fi cu o singură linie sau pot conține mai multe comenzi pentru o singură condiție.

Atât bucla for, cât și bucla while sunt importante în limbajele de calculator pentru obținerea de rezultate. Condiția este îndeplinită dacă sintaxa comenzii este corectă.

Atât bucla for, cât și bucla while sunt instrucțiuni de iterație, dar au caracteristici distincte. Bucla for declară totul (inițializare, condiție, iterație) în partea de sus a corpului buclei. În contrast, doar inițializarea și condiția sunt în partea de sus a corpului buclei într-o buclă while, iar iterația poate fi scrisă oriunde în corpul buclei.