Hoe Do-While Loops werken in computerprogrammering

Hoe Do-While Loops werken in computerprogrammering / Programming

Wanneer je leert programmeren Hoe programmeer je zonder al de stress Leren programmeren zonder al je stress Misschien heb je besloten om te blijven programmeren, of het nu voor een carrière is of gewoon als een hobby. Super goed! Maar misschien begin je je overweldigd te voelen. Niet zo goed. Hier is hulp om uw reis te vergemakkelijken. Lees Meer, het begrijpen van de basisbouwstenen is de sleutel tot vroeg succes. Je zult later de moeilijke onderwerpen oppikken, maar als je variabelietypen, -lussen en -functies niet begrijpt, is het moeilijk om ver te komen.

De meeste nieuwe programmeurs leren over if-else-instructies, while-loops, en voor loops Al snel. Maar een van de lustypen die u misschien niet begrijpt, is de do-while-lus. Laten we bespreken hoe deze lus werkt, wanneer je hem wilt gebruiken en een paar voorbeelden bekijken.

De basis

Een do-while-lus voert een codeblok minstens één keer uit, controleert of een voorwaarde waar is en blijft dan de code naar binnen uitvoeren, afhankelijk van de voorwaarde. Laten we eens kijken naar een eenvoudig pseudocodevoorbeeld (aangezien ze u helpen te leren! 10 Fundamentele Python-voorbeelden die u zullen helpen snel te leren 10 Fundamentele Python-voorbeelden die u zullen helpen snel te leren Dit artikel van eenvoudige Python-voorbeelden is voor degenen die al wat programmeren hebben ervaring en wil je gewoon zo snel mogelijk overstappen naar Python. Lees meer):

do output "De variabele x is gelijk aan" + x; x ++;  while (x < 5); output "The loop has ended."; 

In dit stukje code, de lijnen binnen de do haakjes lopen altijd minstens één keer. Dit betekent dat X kan elke waarde zijn aan het begin van de lus.

Als X is gelijk aan 1 wanneer de lus start, deze zal herhalen tot X voldoet niet aan de voorwaarde ernaast terwijl. Het zou dus in totaal 5 keer lopen. Wanneer X is niet minder dan 5, de lus eindigt en gaat verder naar de code erna. Deze uitvoer ziet er als volgt uit:

De variabele x is gelijk aan 1 De variabele x is gelijk aan 2 De variabele x is gelijk aan 3 De variabele x is gelijk aan 4 De variabele x is gelijk aan 5 De lus is beëindigd.

Omgekeerd, als X was gelijk aan 20 toen deze lus begon, zou het maar één keer draaien. U zou dus één uitvoerinstructie zien, X verhoogt tot 21 en de lus zou eindigen omdat 21 niet minder is dan 5. De uitvoer zou zijn:

De variabele x is gelijk aan 20 De lus is beëindigd. 

Contrast met while en for loops

Hoe werkt een doen terwijl loop verschilt van andere loops? Het belangrijkste onderscheid is dat do-while-lussen een conditie testen na uitvoeren van een codeblok, terwijl andere lussen een voorwaarde controleren voor de code binnen.

Overweeg deze eenvoudige pseudocode terwijl loop voor vergelijking:

x = 10; terwijl (x < 5)  output "The loop has run!"; x++;  

Hier, X is ingesteld op 10 en de terwijl lus controleert dat X is minder dan 5 voordat het wordt uitgevoerd. Hierdoor loopt de code binnenin nooit. Het toepassen van dezelfde logica op een do-while-lus geeft ons ongeveer zoiets als dit:

x = 10; do output "De lus is uitgevoerd!"; x ++;  while (x < 5) 

Deze lus zal de tekst eenmaal uitvoeren, verhogen X, ga dan verder.

Merk op dat je de doe-het-tijd-functionaliteit opnieuw kunt maken met een extra statement voor een terwijl loop, zoals zo:

output "Hallo!"; x ++; terwijl (x < 5)  output "Hello!"; x++;  

Dit is echter onhandig en er is geen reden om het te doen wanneer do-while-loops bestaan.

Voor loops

Do-while-lussen hebben een vergelijkbaar onderscheid met voor loops. EEN voor lus definieert een variabele, geeft aan hoelang de lus moet worden uitgevoerd en stelt een gedrag in voor het einde van elke iteratie.

Hier is een eenvoudig voor loop voor vergelijking:

voor (int i = 0; i < 5; i++)  output "The loop has run " + i + " times.";  

Dit benadrukt een goed contrast tussen doen terwijl en voor loops - je weet precies hoe vaak een voor lus wordt uitgevoerd omdat u de voorwaarden aan het begin hebt ingesteld. Als u de bovenstaande code als volgt in een do-while-lus wijzigt:

do output "De lus is" + i + "keer uitgevoerd."; i ++;  terwijl ik < 5); 

Je zou kunnen eindigen met een probleem wanneer de lus wordt uitgevoerd. Als u niet geïnitialiseerd hebt ik ergens anders, je weet niet wat de waarde ervan zal zijn wanneer het do gedeelte loopt - en het zal minstens één keer draaien. Als ik was 500 toen deze lus liep, de uitvoer hier zou onnauwkeurig zijn.

Samengevat:

  • EEN do-while-lus is handig als u een opdracht minstens één keer wilt uitvoeren, en continu totdat een voorwaarde onwaar is.
  • EEN herhalingslus laat je een blok code herhalen zolang een voorwaarde waar is, en stoppen zodra de voorwaarde niet langer waar is.
  • EEN for loop laat je precies opgeven hoe vaak de lus moet lopen door je eigen parameters in te stellen.

Een Do-While Loop verlaten

Natuurlijk moet je een exit-voorwaarde hebben voor do-while-loops, net als elke andere. Zo niet, dan zou je een oneindige lus kunnen krijgen. Beschouw het volgende fragment:

x = 5; do output "Dit eindigt nooit!";  while (x < 10); 

Als je niet verhoogt X ergens anders in de code, dan zal deze lus voor altijd draaien. Nu zijn soms oneindige lussen handig omdat de programmeur code instelt om elders uit de lus te breken. Maar vaker wel dan niet, beginnen onervaren coders per ongeluk in oneindige lussen. De 10 slechtste programmeerfouten in de geschiedenis De 10 ergste programmeerfouten in de geschiedenis In het legendarische verleden codeerde ook de vernietigde vernietiging. Gevallen van een klein beetje slechte code veroorzaakten rampspoed op een belangrijk niveau. De volgende zijn 10 van de slechtste programmeerfouten in de geschiedenis. Lees verder .

Hier is een voorbeeld van een geschikte oneindige lus. Laten we zeggen dat je een game ontwerpt 5 Gratis game-ontwikkeling Software-tools om je eigen spellen te maken 5 Gratis game-ontwikkeling Software-tools om je eigen spellen te maken Hier zijn de beste gratis game-ontwikkelingssoftware en -hulpmiddelen die je kunt gebruiken om vandaag je droomgame te maken . Lees Meer waar de gebruiker een dobbelsteen gooit en moet een 6 krijgen om de thuisbasis te verlaten. U wilt doorgaan met het gooien van de dobbelsteen totdat deze op 6 landt, en u moet natuurlijk minstens eenmaal werpen. U zou dus deze code kunnen gebruiken:

do int roll = random (1, 2, 3, 4, 5, 6); als (roll == 6) pauze;  while (waar); 

De terwijl (waar) voorwaarde betekent dat deze lus voor altijd zal draaien, wat we willen omdat de gebruiker moet rollen totdat hij een 6 krijgt. Zonder de breken verklaring, zou het vastlopen. Maar zodra de gebruiker een 6 gooit, de als bewering wordt waar, en de sequentie breekt uit de lus en beweegt zich naar wat na is.

U hoeft geen break-statement te gebruiken als u dat niet wilt. In feite is het waarschijnlijk beter om breekverklaringen te vermijden als je kunt. Ze maken uw code moeilijker te onderhouden en het is gemakkelijker om een ​​einde te maken aan een voorwaarde. De gewijzigde code hieronder bereikt dus hetzelfde doel:

do int roll = random (1, 2, 3, 4, 5, 6);  while (roll! = 6); 

Een slechte oneindige lus

Een oneindige lus waarvan je een plan hebt om te verlaten, is prima. Maar soms maakt u per ongeluk een oneindige lus, zoals in het onderstaande voorbeeld:

int x = 7; doe x = 1; x = x + 2; uitvoer "x is gelijk aan" + x;  while (x < 10); 

Dit kan er als volgt uitzien X door 2 elke lus en herhaalt tot x niet minder is dan 10, maar kijk dichterbij. Omdat de lus wordt ingesteld X gelijk aan 1 elke keer dat het draait, is dit een oneindige lus. Let erop dat x = 1 en x = x + 2 betekent dat X is altijd 3 aan het einde van het blok, ongeacht hoe vaak dit loopt, wat betekent X is nooit minder dan 10.

Let op uitspraken in je lus die per ongeluk een variabele veranderen, om situaties als deze te vermijden.

Real-World voorbeelden

We hebben enkele hypothetische voorbeelden hierboven besproken, maar laten we een korte blik werpen op een paar bruikbare real-world voorbeelden van do-while-loops.

Als u een lus aan het maken was om gegevens uit een bestand te lezen tot het einde was bereikt, zou u een do-while-lus gebruiken. Uiteraard moet je ten minste één personage pakken als je van plan bent om uit een bestand te lezen, dus je zou een do-while-lus op deze manier kunnen gebruiken (met dank aan Stack Exchange-gebruiker Steven Burnap voor dit voorbeeld):

doen result = readData (buffer);  while (result! = EOF); 

Zonder een tijdje te doen, zou je een ietwat lelijkere oplossing moeten gebruiken:

while (true) result = readData (buffer); if (result == EOF) pauze;  

Een ander voorbeeld is het betrekken van de invoer van een gebruiker. Laten we zeggen dat je een programma aan het schrijven bent dat de gebruiker vraagt ​​om een ​​positief getal in te voeren. Met behulp van een do-while kunt u ervoor zorgen dat hun invoer geschikt is:

do output "Voer een positief getal in:"; int input = getInput ();  while (invoer < 0); 

Met deze lus ziet de gebruiker de aanwijzing om een ​​cijfer in te voeren en voert hij één keer een waarde in. Als ze een negatief getal invoeren, wordt de lus opnieuw uitgevoerd en wordt hen gevraagd een positief getal in te voeren totdat ze voldoen. Andere lussen zijn eenvoudigweg niet logisch voor dit type actie.

Klaar om Do-While Loops te gebruiken?

We hebben een overzicht van do-while-loops gemaakt, inclusief hun basisprincipes, hoe ze het best kunnen worden gebruikt en hoe ze zich verhouden tot andere loops. Als je niets anders onthoudt van dit artikel, weet dan dat do-while-loops voor zijn wanneer u iets minstens één keer moet uitvoeren, maar weet niet hoeveel keren u het nodig hebt voordat u de lus start.

Denk aan situaties zoals deze in je programma's, en je zult gemakkelijk plaatsen vinden waar do-while-loops passen. Bijna alle beste beginnerstalen 6 Eenvoudigste programmeertalen om te leren voor beginners 6 Eenvoudigste programmeertalen om te leren voor beginners Leren programmeren gaat net zo goed over het vinden van de juiste taal als over het opbouwproces. Hier zijn de top zes van gemakkelijkste programmeertalen voor beginners. Lees Meer ondersteuning do-while loops, dus u zou er geen problemen mee hebben om ze te implementeren.

Als je de basis leert, zorg er dan voor dat je onze toptrucs voor het beheersen van een nieuwe programmeertaal nakijkt 7 Nuttige trucs voor het beheersen van een nieuwe programmeertaal 7 Nuttige trucs voor het beheersen van een nieuwe programmeertaal Het is goed om overweldigd te zijn wanneer je leert programmeren . Je zult dingen waarschijnlijk zo snel vergeten als je ze leert. Deze tips kunnen u helpen om al die nieuwe informatie beter te bewaren. Lees verder .

In welke andere situaties kun je bedenken waar een doe-het-zintuig klopt? Bespreek en laat ons weten of je do-while-loops in je programma's gebruikt in het commentaargedeelte!

Image Credit: Aaban via Shutterstock.com

Ontdek meer over: Programmeren.