Forskjell mellom for og while loop
I C++ og Java, tillater iterasjonserklæringene, for loop, mens loop og do-while loop, at settet med instruksjoner blir gjentatt utført, til tilstanden er sann og avsluttes så snart tilstanden blir falsk. Betingelser i iterasjon setninger kan forhåndsdefinert som i for loop eller open-ended som i mens loop.
Det er flere ‘ for ‘ loop variasjoner I C++ er underforstått å øke sin anvendelighet, kraft og fleksibilitet. For eksempel tillater for loop oss å bruke mer enn en variabel inne i sløyfen for å kontrollere den, og bruken av konvergerende funksjon med ‘ for ‘ loop. Omvendt, med while loop kan vi ikke bruke mange variasjoner, som ma brukes med standard syntaks.
det er noen store forskjeller mellom for og mens looper, som forklares videre ved hjelp av et sammenligningsdiagram.
Innhold: For Sløyfe Vs Mens Sløyfe
- Sammenligningsdiagram
- Definisjon
- Nøkkelforskjeller
- Konklusjon
Sammenligningsdiagram
Grunnlag for Sammenligning | for | mens |
---|---|---|
Erklæring | for (initialisering; tilstand; iterasjon) { / / kropp av ‘for’ loop } |
mens (tilstand) { uttalelser; // kropp av loop } |
Format | Initialisering, tilstandskontroll, iterasjonserklæring er skrevet øverst i løkken. | bare initialisering og tilstandskontroll gjøres øverst i sløyfen. |
Bruk | ‘for’ – sløyfen brukes bare når vi allerede visste antall iterasjoner. | mens-sløyfen brukes bare når antall iterasjon ikke er nøyaktig kjent. |
Betingelse | hvis betingelsen ikke er satt opp i ‘for’ loop, gjentar loop uendelige ganger. | Hvis betingelsen ikke er satt opp i ‘mens’ – løkken, gir den kompileringsfeil. |
Initialisering | i’ for ‘ loop initialisering når gjort er aldri gjentatt. | I mens loop hvis initialisering er gjort under tilstandskontroll, blir initialisering gjort hver gang sløyfen itererer. |
Iteration statement | i ‘ for ‘ loop iteration statement er skrevet øverst, derfor utfører bare etter at alle setninger i loop er utført. | i ‘while’ – løkken kan iterasjonserklæringen skrives hvor som helst i løkken. |
Definisjon av for loop
I Java er det to former for for looper. Den første formen er «tradisjonell» form og den andre er» for-hver » form.
Syntaks
den generelle formen for tradisjonell for loop-setning.
for (initialization; condition; iteration){//body of for loop}
- Initialisering: initialiseringen av loopstyringsvariabelen for loop utføres bare en gang, under den første iterasjonen av loopen. Her initialiseres sløyfekontrollvariabelen, noen ganger hvis sløyfevariabelen ikke brukes igjen hvor som helst i programmet og bare brukes som kontrollvariabel i sløyfen, blir den både deklarert og initialisert i ‘for’ – sløyfen.
- Betingelse: tilstanden til ‘for’ – sløyfen utføres hver gang sløyfen er iterert.
- Økning og iterasjon: iteration-setningen er et uttrykk som øker eller reduserer løkkekontrollvariabelen.
når sløyfen utføres, utføres initialiseringsbetingelsen først; deretter kontrolleres tilstanden. Hvis tilstanden er fornøyd, blir sløyfens kropp utført, og iterasjonserklæringen utføres. Så igjen kontrolleres tilstanden for å vite om sløyfen vil iterere videre eller vil avslutte.
i Java kan initialiseringserklæringen og iterasjonserklæringen inneholde mer enn en setning. I Java er et komma en separator, mens I C++ er» komma » en operatør som kan brukes i et hvilket som helst gyldig uttrykk.
for hver sløyfe og dens syntaks
«for hver» – skjemaet er en forbedret for sløyfe. Den generelle formen for for-hver sløyfe er som følger.
for(type iter_variable: collection) statement-block
her spesifiserer «type» typen av iterasjonsvariabel, etterfulgt av iterasjonsvariabelen. Iterasjonsvariabelen vil motta elementet fra samlingsvariabelen. Typen må være den samme som typen elementer som er lagret i samlingsvariabelen. For-hver form for for loop automatiserer iterasjonen av sløyfen fra start til slutt tilgang til verdiene i sekvensiell rekkefølge.
Eksempel
det finnes ulike typer samling som brukes med for loop. La oss diskutere det med 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); }}// outputvalue in c 10value in c 20value in c 30value in c 40value in c 50value in c 60additon of array elements is 210
her er’ c ‘ en iterasjonsvariabel; den mottar verdiene fra array, en om gangen, fra den laveste indeksen til den høyeste indeksen i arrayet. Her gjentar sløyfen til alle elementene i arrayet blir undersøkt. Det er mulig å avslutte sløyfen i mellom ved å bruke «break». Endringen i iterasjonsvariabelen påvirker imidlertid ikke arrayet, da det bare er en skrivebeskyttet variabel.
Definisjon av while loop
while loop er den mest grunnleggende sløyfen tilgjengelig I C++ og Java. Arbeidet med en stund loop er lik I Både C++ og Java.
Syntaks
deklarasjonen av en while loop er som følger
while ( condition) {statements; //body of loop}
while loop kontrollerer i utgangspunktet tilstanden og utfører deretter setningene til tilstanden i while loop viser seg å være sant. Tilstanden i mens loop kan være noe boolsk uttrykk. Når et uttrykk returnerer en verdi som ikke er null, er betingelsen sann, og hvis uttrykket returnerer en nullverdi, blir betingelsen usann.
hvis betingelsen blir sann, gjentar loop seg selv, og hvis tilstanden blir falsk, går kontrollen til neste linje i koden umiddelbart etterfulgt av sløyfen. Setningene eller kroppsløkken kan enten være en tom setning eller en enkelt setning eller en blokk med setninger.
Eksempel
la oss diskutere arbeidet med en stund loop. I eksemplet nedenfor skrives koden ut fra 1 til 10.
//example is in Java.public class Main{ public static void main (String args) { int n=0; while(n<10) { n++; System.out.println("n=" +n); } }}//outputn=1n=2n=3n=4n=5n=6n=7n=8n=9n=10
her er den opprinnelige verdien av ‘n’ 0, noe som gjør betingelsen i mens sløyfen er sann. Kontrollen går deretter inn i kroppen av while-sløyfen, og verdien av ‘ n ‘ økes i henhold til den første setningen i kroppen av en while-løkke.
verdien av’ n ‘skrives ut, og kontrollen går tilbake til tilstanden om en stund, nå er verdien av’ n ‘ 1 som igjen tilfredsstiller tilstanden, og sløyfens kropp utføres igjen. Dette fortsetter til tilstanden er sann, så snart tilstanden blir falsk, avsluttes sløyfen.
Som ‘for’ loop, kan ‘while’ loop også initialisere kontrollvariabelen øverst i sløyfen, dvs. under tilstandskontroll.
//for examplewhile((ch = getchar( ) ) != 'A'){System.out.println(" The input alphabet " +ch);}
her initialiseres kontrollvariabelen ‘ch’, og tilstanden til sløyfen er verifisert øverst i sløyfen.
Merk
Kan det være en for løkke eller en stund løkke, hvis det bare er en setning i sløyfens kropp, er de krøllete båndene ikke påkrevd i den tilstanden.
Nøkkelforskjeller mellom for og mens loop
- I for loop, initialisering, tilstandskontroll og økning eller reduksjon av iterasjonsvariabel gjøres eksplisitt i syntaksen til en loop bare. Mot, i mens sløyfen kan vi bare initialisere og sjekke tilstanden i syntaksen til sløyfen.
- Når vi er klar over antall iterasjoner som må skje i en utførelse av en sløyfe, bruker vi for loop. På den annen side, hvis vi ikke er klar over antall iterasjon som må skje i en løkke, bruker vi while loop.
- hvis du ikke klarer å sette tilstandserklæring for loop, vil det føre til en uendelig iterasjon av en loop. I kontrast, hvis du ikke klarer å sette tilstandserklæring i mens sløyfen, vil det føre til en kompileringsfeil.
- initialiserings-setningen i syntaksen til for loop utfører bare en gang i starten av sløyfen. Omvendt, hvis mens loop bærer initialiseringsuttalelsen i sin syntaks, vil initialiseringsuttalelsen i while loop utføre hver gang sløyfen itererer.
- iteration-setningen i for-sløyfen vil utføres etter at kroppen for loop utføres. Tvert imot kan iterasjonserklæringen skrives hvor som helst i kroppen av while loop, så det kan være noen uttalelser som utføres etter utførelsen av iterasjonserklæringen i kroppen av while loop.
Konklusjon
for loop og while loop begge er iteration statement, men begge har sin distinkte funksjon. For loop har all sin erklæring (initialisering, tilstand, iterasjon) øverst på sløyfens kropp. Negativt, i mens loop bare initialisering og tilstand er på toppen av kroppen av loop og iterasjon kan skrives hvor som helst i kroppen av loop.