Forskjell mellom for og mens sløyfe

Forfatter: Laura McKinney
Opprettelsesdato: 2 April 2021
Oppdater Dato: 4 Kan 2024
Anonim
Forskjell mellom for og mens sløyfe - Teknologi
Forskjell mellom for og mens sløyfe - Teknologi

Innhold


I C ++ og Java lar iterasjonsuttalelsene, for loop, mens loop og do-while-loop, settes instruksjoner gjentatte ganger, til tilstanden er sann og avsluttes så snart tilstanden blir falsk. Forholdene i iterasjonsuttalelser kan være forhåndsdefinerte som i for loop eller open-end som i while loop.

Det er flere ‘for’ sløyfevariasjoner i C ++ er underforstått for å øke anvendbarheten, kraften og fleksibiliteten. For eksempel lar for-loopen oss bruke mer enn en variabel inne i løkken for å kontrollere den, og bruken av konvergeringsfunksjon med ‘for’ -sløyfe. Motsatt kan vi, mens loopen ikke bruker mange varianter, brukes med standard syntaks.

Det er noen store forskjeller mellom for og mens løkker, som blir forklart nærmere ved hjelp av et sammenligningstabell.

  1. Sammenligningstabell
  2. Definisjon
  3. Viktige forskjeller
  4. Konklusjon

Sammenligningstabell

Grunnlag for sammenligningtil samtidig som
Erklæringfor (initialisering; tilstand; iterasjon) {
// body of for loop
}
mens (betingelse) {
uttalelser; // body of loop
}
FormatInitialisering, tilstandskontroll, iterasjonsuttalelse skrives øverst på løkken.Bare initialisering og tilstandskontroll utføres øverst på løkken.
BrukFor-loop brukes bare når vi allerede visste antall iterasjoner.Mens sløyfen bare brukes når antall iterasjoner ikke er nøyaktig kjent.
BetingelseHvis tilstanden ikke er satt opp for sløyfe, så itererer loopen uendelig mange ganger.Hvis tilstanden ikke blir satt opp mens sløyfen er, gir den kompilasjonsfeil.
initialiseringInnen for sløyfe blir initialiseringen en gang utført aldri gjentatt.I mens loop hvis initialisering er utført under tilstandskontroll, utføres initialisering hver gang loopen itererer.
IterasjonsuttalelseI for loop-iterasjonsuttalelse er skrevet på toppen, kjøres derfor bare etter at alle utsagn i loop er utført.I while loop kan iterasjonsuttalelsen skrives hvor som helst i løkken.


Definisjon av for loop

I Java er det to former for til sløyfer. Den første formen er "tradisjonell" form og den andre er "for hver".

syntax

Den generelle formen for tradisjonell for loop uttalelse.

for (initialisering; tilstand; iterasjon) {// body of for loop}

  • initialisering - Initialiseringen av sløyfekontrollvariabelen for for loop utføres bare en gang, under den første iterasjonen av løkken. Her initialiseres sløyfekontrollvariabelen, noen ganger hvis sløyfevariabelen ikke brukes igjen noe sted i programmet og bare brukes som styringsvariabel på løkken, blir den både deklarert og initialisert i 'for' -sløyfen.
  • Betingelse - Tilstanden til ‘for’ -sløyfen utføres hver gang sløyfen itereres.
  • Økning og iterasjon- Iterasjonsuttalelsen er et uttrykk som øker eller reduserer løkkekontrollvariabelen.

Hver gang sløyfen kjøres, utføres initialiseringsbetingelsen først; så sjekkes tilstanden. Hvis betingelsen er oppfylt, utføres loopens kropp, så utføres iterasjonsuttalelsen. Så igjen blir tilstanden sjekket for å vite om sløyfen vil iterere ytterligere eller vil avslutte.


I Java kan initialiseringsuttalelsen og iterasjonserklæringen inneholde mer enn én setning. Hver setning skilles av en annen med et komma, i Java er et komma en separator, mens "komma" i C ++ er en operatør som kan brukes i ethvert gyldig uttrykk.

for hver løkke og dens syntaks

Formen for hver er en forbedret for loop. Den generelle formen for hver sløyfe er som følger.

for (type iter_variable: collection) uttalelsesblokk

Her spesifiserer "typen" typen iterasjonsvariabel, etterfulgt av iterasjonsvariabelen. Iterasjonsvariabelen vil motta elementet fra samlevariabelen. Typen må være den samme som typen elementer som er lagret i samlevariabelen. Den for hver form for for loop automatiserer iterasjonen av loopen fra begynnelse til slutt tilgang til verdiene i sekvensiell rekkefølge.

Eksempel

Det er forskjellige typer samlinger som brukes sammen til sløyfe. La oss diskutere det med en matrise som en samling.

offentlig klasse Main {public static void main (String args) {int array = {10, 20, 30, 40, 50, 60}; int legge til = 0; for (int c: array) {System.out.ln ("verdi i c" + c); add = add + c; } System.out.ln ("additon av arrayelementer er" + legge til); }} // utgangsverdi i c 10 verdi i c 20 verdi i c 30 verdi i c 40 verdi i c 50 verdi i c 60 additon av arrayelementer er 210

Her er ‘c’ en iterasjonsvariabel; den mottar verdiene fra matrisen, én om gangen, fra den laveste indeksen til den høyeste indeksen i matrisen. Her itererer løkken til alle elementene i matrisen er undersøkt. Det er mulig å avslutte sløyfen i mellom ved å bruke “pause”. Endringen i iterasjonsvariabelen påvirker imidlertid ikke matrisen, ettersom den bare er en skrivebeskyttet variabel.

Definisjon av while loop

De samtidig som loop er den mest grunnleggende løkken tilgjengelig i C ++ og Java. Arbeidet med en stundsløyfe er lik i både C ++ og Java.

syntax

Erklæringen om en stundsløyfe er som følger

while (betingelse) {uttalelser; // body of loop}

Mens sløyfen først kontrollerer tilstanden og kjører deretter utsagnene til tilstanden i mens løkken viser seg å være sann. Tilstanden i mens loop kan være et hvilket som helst boolskt uttrykk. Når et uttrykk returnerer en verdi som ikke er null, er betingelsen sann, og hvis uttrykket returnerer en nullverdi, blir betingelsen falsk.

Hvis betingelsen blir sann, itererer loopen seg selv, og hvis tilstanden blir falsk, går kontrollen til neste linje i koden umiddelbart etterfulgt av loopen. Uttalelsene eller kroppsløkken kan enten være en tom uttalelse eller en enkelt uttalelse eller en blokk med uttalelser.

Eksempel

La oss diskutere bruken av en stundsløyfe. I eksemplet nedenfor vil koden fra 1 til 10.

// eksempel er i Java. offentlig klasse Main {public static void main (String args) {int n = 0; mens (n ​​<10) {n ++; System.out.ln ("n =" + n); }}} // utgang n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10

Her er den opprinnelige verdien til ‘n’ 0, noe som gjør tilstanden i mens sløyfen er sann. Kontrollen kommer deretter inn i kroppen til stundsløyfen, og verdien til ‘n’ økes i henhold til den første setningen i kroppen til en stundsløyfe. Verdien til ‘n’ redigeres, deretter går kontrollen tilbake til tilstanden i en stundsløyfe, nå er verdien til ‘n’ 1 som igjen tilfredsstiller betingelsen, og kroppen til loopen utføres igjen. Dette fortsetter til tilstanden er sann, så snart tilstanden blir falsk, avsluttes løkken.

Som "for" -sløyfen, kan "while" -sløyfen også initialisere kontrollvariabelen øverst på løkken, dvs. under tilstandskontroll.

// for eksempel mens ((ch = getchar ())! = A) {System.out.ln ("Inputalfabetet" + ch); }

Her initialiseres kontrollvariablen ‘ch’, og tilstanden til sløyfen blir verifisert øverst på løkken.

Merk:

Kan det være en for loop eller en stund loop, hvis det bare er en uttalelse i sløyfens kropp, er ikke krøllete seler nødvendig i den tilstanden.

  1. I til sløyfe, initialisering, tilstandskontroll og økning eller reduksjon av iterasjonsvariabelen gjøres eksplisitt i syntaksen til bare en sløyfe. Som imot, i samtidig som loop kan vi bare initialisere og sjekke tilstand i syntaksen til loopen.
  2. Når vi er klar over antall iterasjoner som må skje i utførelsen av en løkke, bruker vi det til sløyfe. På den annen side, hvis vi ikke er klar over hvor mange iterasjoner som må skje i en løkke, bruker vi det samtidig som sløyfe.
  3. Hvis du ikke klarer å sette betingelsesuttalelse til sløyfe, vil det føre til en uendelig iterasjon av en løkke. I motsetning til dette, hvis du ikke klarer å legge betingelsesuttalelse i samtidig som loop vil det føre til en kompilasjonsfeil.
  4. Initialiseringsuttalelsen i syntaks av til loop kjøres bare en gang i starten av løkken. Motsatt, hvis samtidig som loop bærer initialiseringsuttalelse i sin syntaks, deretter vil initialiseringsuttalelsen i while loop utføres hver gang loopen iterates.
  5. Iterasjonsuttalelsen i til loop vil kjøres etter kroppen for at loopen kjøres. Tvert imot, iterasjonsuttalelsen kan skrives hvor som helst i kroppen til samtidig som loop så, det kan være noen utsagn som kjøres etter utførelsen av iterasjonsuttalelse i kroppen til while loop.

Konklusjon:

For for loop og while loop begge er iterasjonsuttalelse, men begge har sitt særegne trekk. For-loop har all sin erklæring (initialisering, tilstand, iterasjon) øverst på sløyfens kropp. I negativ retning, mens loop bare initialisering og tilstand er øverst på kroppen av loopen og iterasjon kan skrives hvor som helst i kroppen.