logo

For vs. While-lus in C

Het verschil begrijpen tussen een for-lus en een while-lus

De iteratie-instructies in C++, zoals for loop, while loop en do-while loop, maken het mogelijk dat een reeks instructies herhaaldelijk wordt uitgevoerd totdat de voorwaarde waar is, en vervolgens wordt beëindigd wanneer de voorwaarde onwaar is. Iteratie-instructies kunnen vooraf gedefinieerde voorwaarden hebben, zoals in een for-lus, of voorwaarden met een open einde, zoals in een while-lus.

In C++ wordt een verscheidenheid aan 'for'-lusvariaties geïmpliceerd om de toepasbaarheid, kracht en flexibiliteit van de taal te vergroten. Met de for-lus kunnen we de lus bijvoorbeeld besturen door meerdere variabelen erin te gebruiken, evenals door het gebruik van de convergentiefunctie met de 'for'-lus. Daarentegen kunnen we met de while-lus niet veel variaties gebruiken; het moet worden gebruikt met de standaardsyntaxis.

Er zijn enkele significante verschillen tussen de for- en while-lussen, die verder worden uitgelegd aan de hand van een vergelijkingstabel.

For vs. While-lus in C

For Loop wordt gedefinieerd als

Er zijn twee soorten for-lussen in Java. De eerste is de 'traditionele' vorm, terwijl de tweede de 'voor-elk'-vorm is.

De meest algemene vorm van een for-lusinstructie.

 for (initialization; condition; iteration) { //body of for loop } 
    Initialisatie:De luscontrolevariabele van de for-lus wordt slechts één keer geïnitialiseerd, tijdens de eerste iteratie van de lus. De lusbesturingsvariabele wordt hier geïnitialiseerd; als de lusvariabele nooit meer in het programma wordt gebruikt en alleen als de controlerende variabele van de lus wordt gebruikt, wordt deze zowel gedeclareerd als geïnitialiseerd in de 'for'-lus.Voorwaarde:De voorwaarde van de 'for'-lus wordt uitgevoerd elke keer dat de lus wordt herhaald.
  • De iteratie-instructie is een expressie die de luscontrolerende variabele verhoogt of verlaagt.

Wanneer de lus wordt uitgevoerd, wordt eerst de initialisatievoorwaarde uitgevoerd, gevolgd door de conditiecontrole. Als aan de voorwaarde is voldaan, wordt de hoofdtekst van de lus uitgevoerd, gevolgd door de iteratie-instructie. De voorwaarde wordt vervolgens opnieuw gecontroleerd om te bepalen of de lus verder zal itereren of eindigen.

In Java kunnen de initialisatie- en iteratie-instructies beide meerdere instructies bevatten. Een komma scheidt elke verklaring; in Java is een komma een scheidingsteken; in C++ is een komma een operator die in elke geldige expressie kan worden gebruikt.

De syntaxis van de for-each-lus

Het 'for-each'-formulier is een meer geavanceerde versie van de for-lus. De for-each-lus heeft de volgende algemene vorm.

 for(type iter_variable: collection) statement-block 

De parameter 'type' specificeert het type iteratievariabele, gevolgd door de iteratievariabele. Het element uit de verzamelingsvariabele wordt doorgegeven aan de iteratievariabele. Het type moet overeenkomen met het type elementen in de verzamelingsvariabele. De for-each-vorm van de for-lus automatiseert de iteratie van de lus van begin tot eind, waarbij de waarden in opeenvolgende volgorde worden benaderd.

Voorbeeld

Er zijn verschillende soorten verzamelingen die kunnen worden gebruikt met een for-lus. Laten we erover praten door een array als verzameling te gebruiken.

 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); } } 

Uitgang:

 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' is in dit geval een iteratievariabele; het ontvangt de waarden van array[], één voor één, van de laagste tot de hoogste index in de array. De lus herhaalt zich totdat alle elementen van de array zijn onderzocht. De lus kan in het midden worden doorbroken door 'break' te gebruiken. De verandering in de iteratievariabele heeft daarentegen geen effect op de array, omdat deze een alleen-lezen variabele is.

Terwijl lus wordt gedefinieerd als

De while-lus is de meest basale lus in zowel C++ als Java. De werking van een while-lus is vergelijkbaar in C++ en Java.

Syntaxis

Het volgende is de while-lusdeclaratie:

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

De while-lus controleert eerst de voorwaarde en voert vervolgens de instructies uit totdat de voorwaarde in de while-lus waar is. In een while-lus kan de voorwaarde elke Booleaanse expressie zijn. Wanneer een expressie een waarde retourneert die niet nul is, is de voorwaarde waar; wanneer het een nulwaarde retourneert, is de voorwaarde onwaar.

Als de voorwaarde waar is, herhaalt de lus zichzelf; als de voorwaarde onwaar is, wordt de controle doorgegeven aan de coderegel die onmiddellijk volgt op de lus. De body-loop of -instructies kunnen een lege instructie, een enkele instructie of een blok met instructies zijn.

Voorbeeld

Laten we eens kijken hoe een while-lus werkt. De code in het onderstaande voorbeeld wordt afgedrukt van 1 tot 10.

 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)>

Bovenaan de lus wordt de controlevariabele 'ch' geïnitialiseerd en wordt de toestand van de lus geverifieerd.

Opmerking: Als er slechts één instructie in de hoofdtekst van de lus staat, of het nu een for-lus of een while-lus is, zijn de accolades niet vereist.

Wat is in C het verschil tussen een for-lus en een while?

Parameters For loop Herhalingslus
Verklaring for(initialisatie; voorwaarde; iteratie) {
// body van 'for'-lus
}
initialisatie
terwijl (voorwaarde) {
verklaringen;
//lichaam van lus
}
Formaat. Bovenaan de lus worden initialisatie-, voorwaardecontrole- en iteratie-instructies geschreven. Bovenaan de lus worden alleen initialisatie en conditiecontrole uitgevoerd.
Gebruik. De 'for'-lus werd alleen gebruikt als het aantal iteraties al bekend was. Wanneer het aantal iteraties onbekend is, wordt de 'while'-lus gebruikt.
Voorwaarde. Als de voorwaarde niet is opgenomen in de 'for'-lus, herhaalt de lus zich voor onbepaalde tijd. Als de voorwaarde niet is opgenomen in de 'while'-lus, treedt er een compilatiefout op.
Initialisatie De initialisatie wordt nooit herhaald in een 'for'-lus. Als initialisatie wordt uitgevoerd tijdens conditiecontrole in een while-lus, wordt initialisatie elke keer uitgevoerd wanneer de lus itereert.
Iteratie bewering Omdat de iteratie-instructie in de 'for'-lus bovenaan wordt geschreven, wordt deze pas uitgevoerd nadat alle instructies in de lus zijn uitgevoerd. De iteratie-instructie in een 'while'-lus kan overal in de lus worden geschreven.

De belangrijkste verschillen tussen for en while-lus

  • Initialisatie, controle van de voorwaarden en het verhogen of verlagen van iteratievariabelen worden allemaal expliciet alleen in de lusyntaxis gedaan. In de while-lus kunnen we daarentegen alleen de voorwaarde in de lus-syntaxis initialiseren en controleren.
  • Als we weten hoeveel iteraties er moeten plaatsvinden bij het uitvoeren van een lus, gebruiken we de for-lus. Aan de andere kant, als we niet weten hoeveel iteraties er in een lus moeten plaatsvinden, gebruiken we een while-lus.
  • Als u geen voorwaarde-instructie in de for-lus opneemt, blijft de lus voor onbepaalde tijd doorlopen. Als u daarentegen geen voorwaarde-instructie in de while-lus opneemt, resulteert dit in een compilatiefout.
  • De initialisatie-instructie in de for-lussyntaxis wordt slechts één keer uitgevoerd aan het begin van de lus. Als de syntaxis van de while-lus een initialisatie-instructie bevat, wordt de initialisatie-instructie uitgevoerd elke keer dat de lus itereert.
  • De iteratie-instructie in de for-lus wordt na de hoofdtekst van de for-lus uitgevoerd. Integendeel, omdat de iteratie-instructie overal in de body van de while-lus kan worden geschreven, kunnen er enkele instructies zijn die worden uitgevoerd nadat de iteratie-instructie in de body van de while-lus is uitgevoerd.

Conclusie

Loops zijn dus een verzameling commando's die in een specifieke volgorde moeten worden gebruikt. Als de lusstructuur onjuist is, geeft de programmering de syntaxisfout weer. Er worden lussen uitgevoerd om een ​​resultaat te verkrijgen of om aan een voorwaarde of een reeks voorwaarden te voldoen. Het is de basis van alle programmeertalen.

Tijdens de uitvoering stelt de lusstructuur een vraag en wordt deze uitgevoerd totdat het antwoord bevredigend is. Dezelfde vraag wordt keer op keer gesteld totdat de nieuwe verklaring wordt toegepast. Het lusproces gaat voor onbepaalde tijd door totdat het programma een breekpunt bereikt. Als het breekpunt niet wordt bereikt, crasht het programma.

De for- en while-lussen zijn beide voorwaardelijke instructies. Een for-lus is een opdracht van één regel die herhaaldelijk wordt uitgevoerd. Terwijl lussen enkelregelig kunnen zijn of meerdere opdrachten voor een enkele voorwaarde kunnen bevatten.

Zowel de for-lus als de while-lus zijn in computertalen belangrijk voor het verkrijgen van resultaten. Aan de voorwaarde is voldaan als de syntaxis van de opdracht correct is.

factoriële java

Zowel de for-lus als de while-lus zijn iteratie-instructies, maar ze hebben verschillende kenmerken. De for-lus declareert alles (initialisatie, voorwaarde, iteratie) bovenaan de lusbody. Daarentegen bevinden alleen initialisatie en voorwaarde zich bovenaan de hoofdtekst van de lus in een while-lus, en kan iteratie overal in de hoofdtekst van de lus worden geschreven.