Verschil tussen voor en terwijl lus

Schrijver: Laura McKinney
Datum Van Creatie: 2 April 2021
Updatedatum: 9 Kunnen 2024
Anonim
VERSCHIL BOSCH ACTIVE LINE / ACTIVE LINE + MOTOR: Dit moet je weten
Video: VERSCHIL BOSCH ACTIVE LINE / ACTIVE LINE + MOTOR: Dit moet je weten

Inhoud


In C ++ en Java laten de iteratieverklaringen, voor lus, lus en lus terwijl de reeks instructies herhaaldelijk worden uitgevoerd, totdat de voorwaarde waar is en wordt beëindigd zodra de voorwaarde onwaar wordt. Voorwaarden in iteratieverklaringen kunnen vooraf worden gedefinieerd als in voor lus of met een open einde zoals in while-lus.

Er zijn verschillende ‘for’ lusvariaties in C ++ impliciet om de toepasbaarheid, kracht en flexibiliteit te vergroten. De for-lus stelt ons bijvoorbeeld in staat om meer dan één variabele in de lus te gebruiken om deze te besturen, en het gebruik van de convergerende functie met de ‘for’ -lus. Omgekeerd kunnen we met while-lus niet veel variaties gebruiken, die moeten worden gebruikt met de standaardsyntaxis.

Er zijn enkele belangrijke verschillen tussen for- en while-lussen, die verder worden uitgelegd met behulp van een vergelijkingsgrafiek.

  1. Vergelijkingstabel
  2. Definitie
  3. Belangrijkste verschillen
  4. Gevolgtrekking

Vergelijkingstabel

Basis voor vergelijkingvoor terwijl
Verklaringvoor (initialisatie; voorwaarde; iteratie) {
// body of for loop
}
terwijl (staat) {
statements; // body of loop
}
Ontwerp, stijlInitialisatie, conditiecontrole en iteratieverklaring staan ​​bovenaan de lus.Alleen initialisatie en conditiecontrole worden bovenaan de lus uitgevoerd.
GebruikDe for-lus werd alleen gebruikt als we het aantal iteraties al wisten.De while-lus wordt alleen gebruikt wanneer het aantal iteraties niet precies bekend is.
StaatAls de voorwaarde niet is ingesteld voor lus, herhaalt de lus oneindige tijden.Als de voorwaarde niet tijdens de lus wordt ingevoerd, levert dit een compilatiefout op.
initialisatieIn for loop wordt de initialisatie na voltooiing nooit herhaald.In while-lus als initialisatie wordt uitgevoerd tijdens conditiecontrole, wordt initialisatie elke keer uitgevoerd wanneer de lus itereert.
Herhaalde verklaringDe it for-instructie it wordt bovenaan geschreven en wordt daarom alleen uitgevoerd nadat alle instructies in de lus zijn uitgevoerd.In while-lus kan de iteratieverklaring overal in de lus worden geschreven.


Definitie van voor lus

In Java zijn er twee vormen van voor loops. De eerste vorm is de "traditionele" vorm en de tweede is de "voor elke" vorm.

Syntaxis

De algemene vorm van traditioneel voor lus-instructie.

voor (initialisatie; voorwaarde; iteratie) {// body of for loop}

  • initialisatie - De initialisatie van de lusbesturingsvariabele van for lus wordt slechts eenmaal uitgevoerd, tijdens de eerste iteratie van de lus. Hier wordt de lusbesturingsvariabele geïnitialiseerd, soms als de lusvariabele nergens in het programma opnieuw wordt gebruikt en alleen als de besturingsvariabele van de lus wordt gebruikt, wordt deze zowel gedeclareerd als geïnitialiseerd in de ‘voor’ lus.
  • Staat - De toestand van de ‘for’ -lus wordt telkens uitgevoerd als de lus wordt herhaald.
  • Toename en iteratie- De iteratie-instructie is een uitdrukking die de lusbesturingsvariabele verhoogt of verlaagt.

Wanneer de lus wordt uitgevoerd, wordt eerst de initialisatietoestand uitgevoerd; dan wordt de conditie gecontroleerd. Als aan de voorwaarde is voldaan, wordt de body van de lus uitgevoerd en wordt de iteratieverklaring uitgevoerd. Aan de andere kant wordt de voorwaarde gecontroleerd om te weten of de lus verder zal itereren of zal eindigen.


In Java kunnen de initialisatie-instructie en de iteratie-instructie meer dan één instructie bevatten. Elke instructie wordt gescheiden door een andere door een komma, in Java is een komma een scheidingsteken, terwijl in C ++ "komma" een operator is die in elke geldige expressie kan worden gebruikt.

voor elke lus en zijn syntaxis

De vorm voor elke vorm is een verbeterde lus. De algemene vorm van de voor elke lus is als volgt.

voor (type iter_variable: collection) statement-block

Hier geeft het "type" het type iteratievariabele aan, gevolgd door de iteratievariabele. De iteratievariabele ontvangt het element van de verzamelingsvariabele. Het type moet hetzelfde zijn als het type elementen dat is opgeslagen in de verzamelingsvariabele. De for-for-vorm van for-lus automatiseert de iteratie van de lus van het begin tot het einde met toegang tot de waarden in opeenvolgende volgorde.

Voorbeeld

Er zijn verschillende soorten collecties die worden gebruikt met voor lus. Laten we het met een array als een verzameling bespreken.

public class Main {public static void main (String args) {int array = {10, 20, 30, 40, 50, 60}; int add = 0; voor (int c: array) {System.out.ln ("value in c" + c); add = add + c; } System.out.ln ("toevoeging van array-elementen is" + add); }} // uitvoerwaarde in c 10 waarde in c 20 waarde in c 30 waarde in c 40 waarde in c 50 waarde in c 60 toevoeging van array-elementen is 210

Hier is ‘c’ een iteratievariabele; het ontvangt de waarden van de array, één voor één, van de laagste index tot de hoogste index in de array. Hier herhaalt de lus zich totdat alle elementen van de array zijn onderzocht. Het is mogelijk om de tussenliggende lus te beëindigen met behulp van "break". De wijziging in de iteratievariabele heeft echter geen invloed op de array, omdat deze alleen een alleen-lezen variabele is.

Definitie van while-lus

De terwijl lus is de meest fundamentele lus die beschikbaar is in C ++ en Java. De werking van een while-lus is vergelijkbaar in zowel C ++ als Java.

Syntaxis

De verklaring van een while-lus is als volgt

terwijl (voorwaarde) {verklaringen; // body of loop}

De While-lus controleert in eerste instantie de voorwaarde en voert vervolgens de instructies uit totdat de voorwaarde in While-lus waar blijkt te zijn. De voorwaarde in while-lus kan elke Booleaanse uitdrukking zijn. Wanneer een uitdrukking een niet-nulwaarde retourneert, is de voorwaarde waar en als de uitdrukking een nulwaarde retourneert, wordt de voorwaarde onwaar.

Als de voorwaarde waar wordt, itereert de lus zichzelf, en als de voorwaarde vals wordt, gaat de besturing naar de volgende regel van de code, onmiddellijk gevolgd door de lus. De verklaringen of de body-lus kunnen een lege verklaring of een enkele verklaring of een blok van verklaringen zijn.

Voorbeeld

Laten we de werking van een while-lus bespreken. In het onderstaande voorbeeld zal de code van 1 tot 10 zijn.

// voorbeeld bevindt zich in Java. public class Main {public static void main (String args) {int n = 0; terwijl (n <10) {n ++; System.out.ln ("n =" + n); }}} // uitgang n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10

Hier is de beginwaarde van ‘n’ 0, waardoor de voorwaarde in while-lus waar is. De besturing gaat vervolgens de body van de while-lus binnen en de waarde van ‘n’ wordt verhoogd volgens de eerste instructie in de body van een while-lus. De waarde van ‘n’ is ed, daarna gaat de besturing terug naar de conditie in een while-lus, nu is de waarde van ‘n’ 1 die weer aan de voorwaarde voldoet en wordt de body van de lus opnieuw uitgevoerd. Dit gaat door totdat de voorwaarde waar is, zodra de voorwaarde onwaar wordt, wordt de lus beëindigd.

Net als de 'for'-lus, kan de ‘while’ -lus ook de besturingsvariabele aan de bovenkant van de lus initialiseren, d.w.z. tijdens het controleren van de toestand.

// bijvoorbeeld while ((ch = getchar ())! = A) {System.out.ln ("Het invoeralfabet" + ch); }

Hier wordt de besturingsvariabele ‘ch’ geïnitialiseerd en wordt de toestand van de lus bovenaan de lus geverifieerd.

Opmerking:

Moge het een for-lus of een while-lus zijn, als er maar één statement in de body van de lus is, zijn de accolades in die toestand niet vereist.

  1. In voor lus, initialisatie, conditiecontrole en toename of afname van iteratievariabele gebeurt expliciet alleen in de syntaxis van een lus. Tegenover, in de terwijl loop kunnen we alleen initialiseren en de conditie controleren in de syntaxis van de loop.
  2. Wanneer we ons bewust zijn van het aantal iteraties dat moet plaatsvinden bij het uitvoeren van een lus, gebruiken we voor lus. Aan de andere kant, als we ons niet bewust zijn van het aantal iteraties dat in een lus moet plaatsvinden, gebruiken we terwijl lus.
  3. Als u er niet in slaagt om staatsverklaring in te zetten voor lus, zal dit leiden tot een oneindige iteratie van een lus. Als u daarentegen de voorwaarde niet in de terwijl lus zal dit leiden tot een compilatiefout.
  4. De initialisatie-instructie in de syntaxis van voor lus wordt slechts eenmaal uitgevoerd aan het begin van de lus. Omgekeerd, als terwijl lus bevat initialisatie-instructie in de syntaxis, dan wordt de initialisatie-instructie in de while-lus uitgevoerd telkens wanneer de lus wordt herhaald.
  5. De iteratieverklaring in de voor loop wordt uitgevoerd nadat de body voor loop is uitgevoerd. Integendeel, de iteratieverklaring kan overal in het lichaam van worden geschreven terwijl loop dus, er kunnen enkele statements zijn die worden uitgevoerd na het uitvoeren van iteratie-instructies in de body van while-lus.

Gevolgtrekking:

De for lus en while lus zijn beide iteratie-instructies, maar beide hebben hun eigen kenmerk. De for-lus heeft al zijn verklaring (initialisatie, conditie, iteratie) bovenaan de body van de lus. Omgekeerd bevindt in while lus alleen initialisatie en conditie zich bovenaan het lichaam van de lus en kan iteratie overal in het lichaam van de lus worden geschreven.