logo

For vs. While-løkke i C

Forstå forskjellen mellom en for loop og en while loop

Iterasjonssetningene i C++, som for loop, while loop og do-while loop, tillater at et sett med instruksjoner kan utføres gjentatte ganger til betingelsen er sann, og deretter avsluttes når betingelsen er usann. Iterasjonssetninger kan ha forhåndsdefinerte betingelser, for eksempel i en for-løkke, eller åpne betingelser, for eksempel i en while-løkke.

I C++ er en rekke 'for'-loopvariasjoner antydet for å øke språkets anvendelighet, kraft og fleksibilitet. For-løkken lar oss for eksempel kontrollere løkken ved å bruke flere variabler inne i den, samt bruken av konvergeringsfunksjonen med 'for'-løkken. Derimot kan vi ikke bruke mange variasjoner med while-løkken; den må brukes med standard syntaks.

Det er noen betydelige forskjeller mellom for- og while-løkkene, som er ytterligere forklart ved hjelp av et sammenligningsdiagram.

For vs. While-løkke i C

For Loop er definert som

Det finnes to typer for-løkker i Java. Den første er den 'tradisjonelle' formen, mens den andre er 'for-hver'-formen.

rekke strukturer i c-språk

Den mest generelle formen for en for loop-setning.

 for (initialization; condition; iteration) { //body of for loop } 
    Initialisering:For-løkkens løkkekontrollerende variabel initialiseres kun én gang, under den første iterasjonen av løkken. Sløyfekontrollvariabelen initialiseres her; hvis løkkevariabelen aldri brukes igjen i programmet og kun brukes som løkkens kontrollerende variabel, blir den både deklarert og initialisert i 'for'-løkken.Betingelse:'For'-løkkens tilstand utføres hver gang løkken itereres.
  • Iterasjonssetningen er et uttrykk som øker eller reduserer den sløyfekontrollerende variabelen.

Når sløyfen utføres, utføres initialiseringsbetingelsen først, etterfulgt av tilstandskontrollen. Hvis betingelsen er oppfylt, utføres sløyfens brødtekst, etterfulgt av iterasjonssetningen. Tilstanden blir deretter kontrollert igjen for å avgjøre om sløyfen vil iterere videre eller avsluttes.

I Java kan initialiserings- og iterasjonssetningene begge inneholde flere setninger. Et komma skiller hvert utsagn; i Java er et komma en skilletegn; i C++ er et komma en operator som kan brukes i alle gyldige uttrykk.

Syntaksen til for-hver-løkken

'For-each'-skjemaet er en mer avansert versjon av for-løkken. For-hver-løkken har følgende generelle form.

 for(type iter_variable: collection) statement-block 

'type'-parameteren spesifiserer typen iterasjonsvariabel, som etterfølges av iterasjonsvariabelen. Elementet fra samlingsvariabelen vil bli sendt til iterasjonsvariabelen. Typen må samsvare med typen elementer i samlingsvariabelen. For-hver-formen av for-løkken automatiserer loopens iterasjon fra begynnelse til slutt, og får tilgang til verdiene i sekvensiell rekkefølge.

10 til makten 6

Eksempel

Det finnes ulike typer kolleksjoner som kan brukes med en for-løkke. La oss snakke om det ved å bruke en matrise 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); } } 

Produksjon:

opprettelse av orakelbord
 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 iterasjonsvariabel i dette tilfellet; den mottar verdiene fra array[], én etter én, fra den laveste til den høyeste indeksen i matrisen. Løkken itererer til alle elementene i arrayet er undersøkt. Løkken kan brytes på midten ved å bruke 'break'. Endringen i iterasjonsvariabelen har derimot ingen effekt på matrisen fordi den er en skrivebeskyttet variabel.

Mens loop er definert som

While-løkken er den mest grunnleggende løkken i både C++ og Java. A while loops operasjon er lik i C++ og Java.

Syntaks

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

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

While-løkken sjekker først betingelsen og utfører deretter setningene til betingelsen i while-løkken er sann. I en while-løkke kan betingelsen være et hvilket som helst boolsk uttrykk. Når et uttrykk returnerer en verdi som ikke er null, er betingelsen sann; når den returnerer en nullverdi, er betingelsen falsk.

Hvis betingelsen er sann, itererer loopen seg selv; hvis betingelsen er falsk, sendes kontrollen til kodelinjen umiddelbart etter sløyfen. Body-løkken eller setningene kan være en tom setning, en enkelt setning eller en blokk med setninger.

Eksempel

La oss se på hvordan en while-løkke fungerer. Koden i eksemplet nedenfor vil skrives ut 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)>

På toppen av sløyfen initialiseres kontrollvariabelen 'ch', og løkkens tilstand verifiseres.

Merk: Hvis det bare er én setning i løkkens brødtekst, enten det er en for-løkke eller en while-løkke, er det ikke nødvendig med krøllete klammeparenteser.

I C, hva er forskjellen mellom en for loop og en stund?

Parametere For Loop Mens Loop
Erklæring for(initialisering ; betingelse ; iterasjon ) {
//body of 'for' loop
}
initialisering
while ( condition ) {
uttalelser;
//body of loop
}
Format. Øverst i loopen skrives initialiserings-, tilstandskontroll- og iterasjonssetninger. På toppen av loopen utføres kun initialisering og tilstandskontroll.
Bruk. 'For'-løkken ble bare brukt når antall iterasjoner allerede var kjent. Når antall iterasjoner er ukjent, brukes 'mens'-løkken.
Betingelse. Hvis betingelsen ikke er inkludert i 'for'-løkken, gjentar loopen på ubestemt tid. Hvis betingelsen ikke er inkludert i 'while'-løkken, oppstår det en kompileringsfeil.
Initialisering Initialiseringen gjentas aldri i en 'for'-løkke. Hvis initialisering utføres under tilstandskontroll i en while-løkke, utføres initialisering hver gang loopen itererer.
Iterasjonspåstand Fordi iterasjonssetningen i 'for'-løkken er skrevet øverst, kjøres den bare etter at alle setningene i løkken er utført. Iterasjonssetningen i en 'while'-løkke kan skrives hvor som helst i loopen.

De viktigste forskjellene mellom for og while-løkke

  • Initialisering, tilstandskontroll og økning eller reduksjon av iterasjonsvariabler gjøres eksplisitt kun i loopsyntaksen. I motsetning til dette, i while-løkken, kan vi bare initialisere og sjekke tilstanden i loop-syntaksen.
  • Når vi vet antall iterasjoner som må skje i en løkkekjøring, bruker vi for-løkken. På den annen side, hvis vi ikke vet hvor mange iterasjoner som må forekomme i en loop, bruker vi en while-løkke.
  • Hvis du ikke inkluderer en betingelsessetning i for-løkken, vil løkken løkke på ubestemt tid. I motsetning til dette, vil unnlatelse av å inkludere en betingelsessetning i while-løkken resultere i en kompileringsfeil.
  • Initialiseringssetningen i for loop-syntaksen utføres bare én gang i begynnelsen av loopen. Hvis while-løkkens syntaks inkluderer en initialiseringssetning, vil initialiseringssetningen bli utført hver gang loopen itererer.
  • Iterasjonssetningen i for-løkken kjøres etter brødteksten til for-løkken. Tvert imot, fordi iterasjonssetningen kan skrives hvor som helst i brødteksten til while-løkken, kan det være noen setninger som kjøres etter at iterasjonssetningen i brødteksten til while-løkken er utført.

Konklusjon

Loops er altså en samling kommandoer som må brukes i en bestemt rekkefølge. Hvis sløyfestrukturen er feil, vil programmeringen vise syntaksfeilen. Sløyfer løper for å oppnå et resultat eller for å tilfredsstille en betingelse eller et sett med betingelser. Det er grunnlaget for alle programmeringsspråk.

gnistopplæring

Under utførelse stiller løkkestrukturen et spørsmål og utfører til svaret er tilfredsstillende. Det samme spørsmålet stilles igjen og igjen inntil den nye erklæringen tas i bruk. Sløyfeprosessen fortsetter på ubestemt tid til programmet når et bruddpunkt. I tilfelle bristepunktet ikke nås, vil programmet krasje.

For- og while-løkkene er begge betingede utsagn. En for-løkke er en enkeltlinjes kommando som vil bli utført gjentatte ganger. Mens løkker kan være enkeltlinjede eller inneholde flere kommandoer for en enkelt tilstand.

Både for loop og while loop er viktig i dataspråk for å oppnå resultater. Betingelsen er oppfylt hvis kommandosyntaksen er korrekt.

Både for-løkken og while-løkken er iterasjonsutsagn, men de har distinkte egenskaper. For-løkken erklærer alt (initialisering, tilstand, iterasjon) øverst i løkken. I motsetning er det bare initialisering og tilstand som er øverst i løkken i en while-løkke, og iterasjon kan skrives hvor som helst i løkken.