In dit artikel gaan we het hebben over de verschillen tussen de lus while while en de do-while-lus.
Vergelijkingstabel
Basis voor vergelijking | terwijl | doen terwijl |
---|---|---|
Algemene vorm | while (voorwaarde) { statements; // body of loop } | do{ . statements; // body of loop. . } while (Voorwaarde); |
Voorwaarde regelen | In 'while' lus verschijnt de controleconditie aan het begin van de lus. | In de 'do-while'-lus verschijnt de controleconditie aan het einde van de lus. |
herhalingen | De iteraties komen niet voor als, de toestand bij de eerste iteratie, onwaar lijkt. | De iteratie gebeurt minstens één keer, zelfs als de voorwaarde onwaar is bij de eerste iteratie. |
Definitie van while Loop
De while-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. De algemene vorm van de while-lus is:
while (voorwaarde) {statements; // body of loop}
De while-lus verifieert eerst de voorwaarde en als de voorwaarde waar is, wordt de lus herhaald totdat de voorwaarde onjuist is. De voorwaarde in while-lus kan elke Booleaanse expressie zijn. Wanneer expressie een niet-nulwaarde retourneert, is de voorwaarde "waar" en als een uitdrukking een nulwaarde retourneert, wordt de voorwaarde "onwaar". Als de voorwaarde waar wordt, wordt de lus herhaald en als de voorwaarde onwaar wordt, gaat de besturing naar de volgende regel van de code die onmiddellijk wordt gevolgd door de lus.
De instructies of de hoofdtekst van de lus kunnen een lege instructie zijn of een enkele instructie of een reeks instructies.
Laten we de werking van een while-lus bespreken. In het onderstaande voorbeeld wordt de code afgedrukt van 1 tot 10.
// voorbeeld is in Java. class while {public static void main (args []) {int n = 0; while (n <= 10) {n ++; system.out.println ("n =" + n); }}} // uitvoer 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' gelijk aan 0, waardoor de voorwaarde in while loop true wordt. De besturing komt dan in de body van while-lus en de waarde van 'n' wordt verhoogd volgens de eerste instructie in de hoofdtekst van een while-lus. Dan wordt de waarde van 'n' afgedrukt en opnieuw gaat de besturing terug naar de toestand van een while-lus, nu is de waarde van 'n' 1 die opnieuw aan de voorwaarde voldoet, en de body van de lus wordt opnieuw uitgevoerd.
Dit gaat zo door totdat de voorwaarde waar is, zodra de voorwaarde onwaar is, wordt de lus beëindigd. Net als bij lus controleert de while-lus ook eerst de conditie en voert dan de lus van de lus uit.
Definitie van do-while Loop
Net als in while-lus, als de controleconditie alleen false wordt in de eerste iteratie, wordt de body van de while-lus helemaal niet uitgevoerd. Maar de do-while-lus is enigszins anders dan while-lus. De do-while-lus voert de body van de lus ten minste één keer uit, zelfs als de voorwaarde bij de eerste poging onwaar is.
De algemene vorm van do-while is als volgt.
doen {. statements // body of loop. . } while (Voorwaarde);
In een do-while-lus vindt de body van de lus plaats vóór de controlevoorwaarde en staat de conditionele instructie onderaan de lus. Net als in while-lus, ook hier, kan de body van de lus leeg zijn omdat zowel C ++ als Java null-instructies toestaan of er slechts één instructie of een blok met uitspraken kan zijn. De voorwaarde hier is ook een booleaanse expressie, die geldt voor alle niet-nulwaarden.
In een do-while-lus reikt de controle eerst naar de instructie in de hoofdtekst van een do-while-lus. De instructies in het lichaam worden eerst uitgevoerd en vervolgens reikt de controle naar het conditiedeel van de lus. De voorwaarde is geverifieerd en, als het waar is, wordt de lus opnieuw geïtereerd en als de voorwaarde onwaar is, gaat de besturing terug naar de volgende regel onmiddellijk na de lus.
Laten we het begrijpen door het bovenstaande voorbeeld in doe-het-werk te implementeren.
// voorbeeld is in Java. class while {public static void main (args []) {int n = 1; doe {system.out.println ("n =" + n); n ++; } while (n <10)}} // uitvoer n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10
Hier, de waarde van n = 1, gaat de besturing terug naar het lichaam van de lus, wordt de waarde van 'n' afgedrukt en wordt de waarde ervan verhoogd. Vervolgens wordt de besturing hervat volgens de toestand van de do-while-lus; de voorwaarde is geverifieerd en dat is waar voor n = 1, dus de lus is weer itereren en doorgaan totdat de voorwaarde onwaar is geworden.
Belangrijkste verschillen tussen while en do-while Loop
- De while-lus controleert de toestand bij het starten van de lus en als aan de voorwaarde is voldaan, wordt de instructie in de lus uitgevoerd. In do-while-lus wordt de voorwaarde gecontroleerd na de uitvoering van alle instructies in de hoofdtekst van de lus.
- Als de voorwaarde in een while-lus vals is, wordt er geen enkele instructie in de lus uitgevoerd en als de voorwaarde in de do-while-lus onwaar is, wordt ook de body van de lus ten minste eenmaal uitgevoerd en wordt de voorwaarde getest.
Conclusie:
Zowel while als do-while loop zijn de iteratie-instructie, als we dat eerst willen, moet de voorwaarde worden geverifieerd en dan moeten de instructies binnen de lus worden uitgevoerd en dan wordt de while-lus gebruikt. Als u de beëindigingsvoorwaarde aan het einde van de lus wilt testen, wordt de do-while-lus gebruikt.