logo

For vs. While-løkke i C

Forstå forskellen mellem en for-løkke og en while-løkke

Iterationssætningerne i C++, såsom for loop, while loop og do-while loop, tillader, at et sæt instruktioner kan udføres gentagne gange, indtil betingelsen er sand, og afsluttes derefter, når betingelsen er falsk. Iterationsudsagn kan have foruddefinerede betingelser, såsom i en for-løkke, eller åbne betingelser, såsom i en while-løkke.

I C++ er en række forskellige 'for'-løkkevariationer underforstået for at øge sprogets anvendelighed, kraft og fleksibilitet. For eksempel giver for-løkken os mulighed for at styre løkken ved at bruge flere variabler inde i den, såvel som brugen af ​​konvergeringsfunktionen med 'for'-løkken. Derimod kan vi ikke bruge mange variationer med while-løkken; det skal bruges med standardsyntaksen.

Der er nogle væsentlige forskelle mellem for- og while-løkkerne, som forklares yderligere ved hjælp af et sammenligningsdiagram.

For vs. While-løkke i C

For Loop er defineret som

Der er to typer for loops i Java. Den første er den 'traditionelle' form, mens den anden er den 'for-hver'-form.

syreegenskaber

Den mest generelle form for en for loop-erklæring.

 for (initialization; condition; iteration) { //body of for loop } 
    Initialisering:For-løkkens løkkestyrende variabel initialiseres kun én gang under den første iteration af løkken. Den løkkestyrende variabel initialiseres her; hvis løkkevariablen aldrig bruges igen i programmet og kun bruges som løkkens styrevariabel, er den både erklæret og initialiseret i 'for'-løkken.Tilstand:'For'-løkkens tilstand udføres, hver gang løkken itereres.
  • Iterationssætningen er et udtryk, der øger eller formindsker den løkkestyrende variabel.

Når løkken udføres, udføres initialiseringsbetingelsen først, efterfulgt af tilstandskontrollen. Hvis betingelsen er opfyldt, udføres loopens brødtekst, efterfulgt af iterationssætningen. Betingelsen kontrolleres derefter igen for at bestemme, om løkken vil iterere yderligere eller afsluttes.

I Java kan initialiserings- og iterationssætningerne begge indeholde flere sætninger. Et komma adskiller hvert udsagn; i Java er et komma en separator; i C++ er et komma en operator, der kan bruges i ethvert gyldigt udtryk.

Syntaksen for for-each-løkken

Formularen 'for-each' er en mere avanceret version af for-løkken. For-hver-løkken har følgende generelle form.

 for(type iter_variable: collection) statement-block 

Parameteren 'type' specificerer typen af ​​iterationsvariabel, som efterfølges af iterationsvariablen. Elementet fra samlingsvariablen vil blive overført til iterationsvariablen. Typen skal matche typen af ​​elementer i samlingsvariablen. For-hver-formen af ​​for-løkken automatiserer løkkens iteration fra start til slut og får adgang til værdierne i sekventiel rækkefølge.

udvælgelsessortering

Eksempel

Der er forskellige typer kollektioner, der kan bruges med en for-løkke. Lad os tale om det ved at bruge et array som en samling.

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

Produktion:

java sammenlignelig
 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' er en iterationsvariabel i dette tilfælde; den modtager værdierne fra array[], én efter én, fra det laveste til det højeste indeks i arrayet. Sløjfen itererer, indtil alle arrayets elementer er undersøgt. Løkken kan brydes på midten ved at bruge 'break'. Ændringen i iterationsvariablen har på den anden side ingen effekt på arrayet, fordi det er en skrivebeskyttet variabel.

Mens loop er defineret som

While-løkken er den mest grundlæggende løkke i både C++ og Java. A while loops operation er ens i C++ og Java.

Syntaks

Følgende er while-løkkeerklæringen:

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

While-løkken tjekker først betingelsen og udfører derefter sætningerne, indtil betingelsen i while-løkken er sand. I en while-løkke kan betingelsen være et hvilket som helst boolesk udtryk. Når et udtryk returnerer en værdi, der ikke er nul, er betingelsen sand; når den returnerer en nulværdi, er betingelsen falsk.

Hvis betingelsen er sand, itererer løkken sig selv; hvis betingelsen er falsk, overføres kontrollen til kodelinjen umiddelbart efter løkken. Body-løkken eller udsagn kan være et tomt udsagn, et enkelt udsagn eller en blok af udsagn.

Eksempel

Lad os se på, hvordan en while-løkke fungerer. Koden i eksemplet nedenfor udskrives fra 1 til 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)>

Øverst i løkken initialiseres kontrolvariablen 'ch', og løkkens tilstand verificeres.

Bemærk: Hvis der kun er én sætning i løkkens brødtekst, uanset om det er en for-løkke eller en while-løkke, er de krøllede parenteser ikke nødvendige.

I C, hvad er forskellen mellem a for loop og a while?

Parametre Til Loop Mens Loop
Erklæring for(initialisering ; betingelse ; iteration ) {
//body of 'for' loop
}
initialisering
while ( betingelse ) {
erklæringer;
//body of loop
}
Format. Øverst i løkken skrives initialisering, tilstandskontrol og iterationsudsagn. Øverst i løkken udføres kun initialisering og tilstandskontrol.
Brug. 'For'-løkken blev kun brugt, når antallet af iterationer allerede var kendt. Når antallet af iterationer er ukendt, bruges 'mens'-løkken.
Tilstand. Hvis betingelsen ikke er inkluderet i 'for'-løkken, gentager løkken på ubestemt tid. Hvis betingelsen ikke er inkluderet i 'mens'-løkken, opstår der en kompileringsfejl.
Initialisering Initialiseringen gentages aldrig i en 'for'-løkke. Hvis initialisering udføres under tilstandskontrol i en while-løkke, udføres initialisering hver gang loopet itererer.
Iterationspåstand Fordi iterationssætningen i 'for'-løkken er skrevet øverst, udføres den først, efter at alle sætninger i løkken er blevet udført. Iterationssætningen i en 'while'-løkke kan skrives hvor som helst i løkken.

Nøgleforskellene mellem for og while loop

  • Initialisering, tilstandskontrol og forøgelse eller formindskelse af iterationsvariabler udføres alle eksplicit kun i loop-syntaksen. I modsætning hertil kan vi i while-løkken kun initialisere og kontrollere betingelsen i loop-syntaksen.
  • Når vi kender antallet af iterationer, der skal forekomme i en loop-udførelse, bruger vi for-løkken. På den anden side, hvis vi ikke ved, hvor mange iterationer der skal forekomme i en loop, bruger vi en while-løkke.
  • Hvis du ikke inkluderer en betingelsessætning i for-løkken, vil løkken løkke på ubestemt tid. I modsætning hertil vil undladelse af at inkludere en betingelsessætning i while-løkken resultere i en kompileringsfejl.
  • Initialiseringssætningen i for loop-syntaksen udføres kun én gang i begyndelsen af ​​loopet. Hvis while-løkkens syntaks inkluderer en initialiseringssætning, vil initialiseringssætningen blive udført, hver gang løkken itererer.
  • Iterationssætningen i for-løkken kører efter brødteksten i for-løkken. Tværtimod, fordi iterationssætningen kan skrives hvor som helst i mens-løkkens brødtekst, kan der være nogle sætninger, der udføres efter iterationssætningen i while-løkkens brødtekst er udført.

Konklusion

Sløjfer er altså en samling af kommandoer, som skal bruges i en bestemt rækkefølge. Hvis sløjfestrukturen er forkert, vil programmeringen vise syntaksfejlen. Sløjfer kører for at opnå et resultat eller for at opfylde en betingelse eller et sæt betingelser. Det er grundlaget for alle programmeringssprog.

python generere uuid

Under udførelsen stiller loopstrukturen et spørgsmål og udfører indtil svaret er tilfredsstillende. Det samme spørgsmål stilles igen og igen, indtil den nye erklæring anvendes. Looping-processen fortsætter på ubestemt tid, indtil programmet når et brudpunkt. I tilfælde af at bristepunktet ikke nås, vil programmet gå ned.

For- og while-løkkerne er begge betingede udsagn. En for-løkke er en enkelt-linje-kommando, der vil blive udført gentagne gange. Mens sløjfer kan være enkeltlinjede eller indeholde flere kommandoer for en enkelt betingelse.

Både for loop og while loop er vigtige i computersprog for at opnå resultater. Betingelsen er opfyldt, hvis kommandosyntaksen er korrekt.

Både for-løkken og while-løkken er iterationsudsagn, men de har forskellige karakteristika. For-løkken erklærer alt (initialisering, betingelse, iteration) øverst i loop-legemet. I modsætning hertil er det kun initialisering og tilstand, der er øverst i løkkens krop i en while-løkke, og iteration kan skrives hvor som helst i løkkens krop.