Forskel mellem for og mens loop

Forfatter: Laura McKinney
Oprettelsesdato: 2 April 2021
Opdateringsdato: 10 Kan 2024
Anonim
1972 Olympics: The Munich Massacre | History of Israel Explained | Unpacked
Video.: 1972 Olympics: The Munich Massacre | History of Israel Explained | Unpacked

Indhold


I C ++ og Java tillader iterationssætningerne for loop, mens loop og do-while-loop, at sæt instruktionerne gentagne gange udføres, indtil betingelsen er sand og afsluttes, så snart betingelsen bliver falsk. Betingelser i iterationssætninger kan være foruddefineret som i for loop eller åben end som i while loop.

Der er adskillige 'for' loop variationer i C ++ antydes for at øge dens anvendelighed, styrke og fleksibilitet. For eksempel tillader for-loopen os at bruge mere end en variabel inde i løkken for at kontrollere den, og brugen af ​​konvergeringsfunktion med 'for' -sløjfe. Omvendt kan vi med mens loop ikke bruge mange variationer, der skal bruges med standard syntaks.

Der er nogle store forskelle mellem for og mens løkker, som forklares yderligere ved hjælp af et sammenligningstabell.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligningtil mens
Erklæringtil (initialisering; betingelse; iteration) {
// krop af for løkke
}
mens (betingelse) {
udsagn; // krop af sløjfe
}
FormatInitialisering, tilstandskontrol, iterationserklæring skrives øverst på løkken.Kun initialisering og tilstandskontrol udføres øverst på løkken.
BrugFor-loop bruges kun, når vi allerede vidste antallet af iterationer.Mens løkken kun bruges, når antallet af iteration ikke er nøjagtigt kendt.
TilstandHvis betingelsen ikke er sat op til løkke, iterereres loop uendelige gange.Hvis betingelsen ikke sættes i, mens der er loop, giver den kompilationsfejl.
InitialiseringIn for loop afsluttes aldrig den initialiserede initialisering igen.I mens-loop, hvis initialisering udføres under tilstandskontrol, foretages initialisering, hver gang loop-iterenerer.
IterationserklæringI for loop-iterationserklæring er skrevet øverst, eksekveres derfor kun, når alle udsagn i loop er udført.I mens-loop kan iterationsangivelsen skrives hvor som helst i løkken.


Definition af for loop

I Java er der to former for til sløjfer. Den første form er "traditionel" form og den anden er "for hver" form.

Syntaks

Den generelle form for traditionel til loop loop erklæring.

til (initialisering; betingelse; iteration) {// body of for loop}

  • Initialisering - Initialiseringen af ​​sløjfekontrolvariablen for for loop udføres kun én gang under den første iteration af løkken. Her initialiseres loop-styringsvariablen, undertiden hvis loop-variablen ikke bruges igen et sted i programmet og kun bruges som styringsvariablen for loopen, erklæres og initialiseres den både i 'for' -sløjfen.
  • Tilstand - Betingelsen for 'for' -sløjfen udføres hver gang løkken itereres.
  • Forøgelse og iteration- Iterationsangivelsen er et udtryk, der øger eller reducerer loop-kontrollerende variabel.

Hver gang løkken udføres, udføres dens initialiseringsbetingelse først; derefter kontrolleres betingelsen. Hvis betingelsen er opfyldt, udføres loopens krop, derefter udføres iterationsangivelsen. Derefter kontrolleres betingelsen for at vide, om løkken vil itereere yderligere eller vil afslutte.


I Java kan initialiseringsangivelsen og iterationserklæringen indeholde mere end en sætning. Hver sætning adskilles af en anden med et komma, i Java, et komma er en separator, mens "komma" i C ++ er en operator, der kan bruges i ethvert gyldigt udtryk.

for hver løkke og dens syntaks

Formen "for-hver" er en forbedret loop. Den generelle form for den for hver loop er som følger.

til (type iter_variable: collection) erklæringsblok

Her specificerer “typen” typen af ​​iterationsvariabel, efterfulgt af iterationsvariablen. Iterationsvariablen modtager elementet fra samlingsvariablen. Typen skal være den samme som typen af ​​elementer, der er gemt i samlingsvariablen. For-hver form for for-loop automatiserer iterationen af ​​løkken fra start til slut adgang til værdierne i rækkefølge.

Eksempel

Der er forskellige typer samling, der bruges til loop. Lad os diskutere det med en matrix som en samling.

offentlig klasse Main {public static void main (String args) {int array = {10, 20, 30, 40, 50, 60}; int tilføj = 0; for (int c: array) {System.out.ln ("værdi i c" + c); tilføj = tilføj + c; } System.out.ln ("additon af arrayelementer er" + tilføj); }} // outputværdi i c 10-værdi i c 20-værdi i c 30-værdi i c 40-værdi i c 50-værdi i c 60 additon af matrixelementer er 210

Her er 'c' en iterationsvariabel; den modtager værdierne fra matrix, én ad gangen, fra det laveste indeks til det højeste indeks i matrixen. Her gentages løkken, indtil alle elementerne i arrayet er undersøgt. Det er muligt at afslutte loopen imellem ved at bruge “break”. Ændringen i iterationsvariablen påvirker dog ikke arrayet, da det kun er en skrivebeskyttet variabel.

Definition af mens loop

Det mens loop er den mest grundlæggende loop tilgængelig i C ++ og Java. Arbejdet med en stund-loop er ens i både C ++ og Java.

Syntaks

Erklæringen om en stund-loop er som følger

mens (betingelse) {udsagn; // body of loop}

Mens loop oprindeligt kontrollerer betingelsen og udfører derefter udsagnene, indtil betingelsen i, mens loop viser sig at være sand. Betingelsen i mens-loop kan være ethvert boolskt udtryk. Når et udtryk returnerer en ikke-nul-værdi, er betingelsen sand, og hvis udtrykket returnerer en nul-værdi, bliver betingelsen falsk.

Hvis betingelsen bliver sand, itererer loopen sig selv, og hvis betingelsen bliver falsk, overgår kontrollen til den næste linje i koden straks efterfulgt af loopen. Udsagnene eller kropsløkken kan enten være en tom sætning eller en enkelt erklæring eller en blok udsagn.

Eksempel

Lad os diskutere arbejdet med et stykke tidsløkke. 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); }}} // output n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10

Her er den oprindelige værdi af 'n' 0, hvilket gør betingelsen i, mens loop er sand. Kontrollen kommer derefter ind i kroppen på while-loopen, og værdien af ​​‘n’ forøges i henhold til den første sætning i kroppen af ​​en while-loop. Værdien af ​​‘n’ redigeres, derefter går kontrollen tilbage til betingelsen i et stykke tidsløkke, nu er værdien på ‘n’ 1, som igen tilfredsstiller betingelsen, og loopens krop udføres igen. Dette fortsætter, indtil betingelsen er sand, så snart betingelsen bliver falsk, afsluttes løkken.

Ligesom 'for'-løkke, kan loopen' mens 'også initialisere kontrolvariablen øverst på løkken, dvs. under tilstandskontrol.

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

Her initialiseres kontrolvariablen 'ch', og loopens tilstand verificeres øverst på løkken.

Bemærk:

Måske det er en for-loop eller en stund-løkke, hvis der kun er en erklæring i loopens krop, kræves de krøllede seler ikke i denne tilstand.

  1. I til loop, initialisering, betingelseskontrol og forøgelse eller reduktion af iterationsvariablen udføres eksplicit i syntaxen af ​​en løkke. I modsætning til i mens loop kan vi kun initialisere og kontrollere tilstand i syntaxen af ​​loopen.
  2. Når vi er opmærksomme på antallet af iterationer, der skal forekomme i udførelsen af ​​en løkke, så bruger vi til loop. På den anden side, hvis vi ikke er opmærksomme på antallet af iterationer, der skal forekomme i en løkke, så bruger vi mens loop.
  3. Hvis du ikke lægger betingelsesopgørelse i til sløjfe, vil det føre til en uendelig iteration af en løkke. I modsætning hertil, hvis du undlader at placere betingelsesangivelse i mens loop det vil føre til en kompilationsfejl.
  4. Initialiseringsopgørelsen i syntaks af til loop udføres kun én gang i starten af ​​loopen. Omvendt, hvis mens loop bærer initialiseringsangivelse i sin syntaks, derefter initialiseres erklæringen i while loop udføres hver gang loopen itererer.
  5. Iterationserklæringen i til loop udføres efter kroppen for loop-eksekvering. Tværtimod kan iterationserklæringen skrives hvor som helst i kroppen af mens loop så, der kan være nogle udsagn, der udføres efter udførelsen af ​​iterationserklæring i kroppen af ​​while loop.

Konklusion:

For loop og while loop begge er iterationserklæring, men begge har deres forskellige funktion. For-loop har alle dens erklæring (initialisering, betingelse, iteration) øverst på loopens krop. I negativ retning, i mens loop kun initialisering og tilstand er øverst på kroppen af ​​løkken, og iteration kan skrives hvor som helst i kroppen af ​​løkken.