V tomto článku se budeme zabývat rozdíly mezi smyčkou „while“ a „do-while“ smyčkou.
Srovnávací graf
Základ pro srovnání | zatímco | dělat, zatímco |
---|---|---|
Obecný formulář | zatímco (podmínka) { prohlášení; // tělo smyčky } | dělat{ . prohlášení; // tělo smyčky. . } zatímco (podmínka); |
Kontrolní podmínky | Ve smyčce 'while' se řídící podmínka objeví na začátku smyčky. | V 'do-while' smyčce se řídící podmínka objeví na konci smyčky. |
Iterace | Iterace se nevyskytují, pokud se podmínka první iterace jeví jako nepravdivá. | K iteraci dochází alespoň jednou, i když je podmínka nepravdivá při první iteraci. |
Definice smyčky
Smyčka while je nejzákladnější smyčka dostupná v C ++ a Java. Práce smyčky while je podobná jak v C ++, tak v jazyce Java. Obecná forma smyčky while je:
while (condition) {příkazy; // tělo smyčky}
Smyčka smyčky nejprve ověří stav a pokud je podmínka pravdivá, pak opakuje smyčku, dokud se podmínka neobjeví nepravdivá. Podmínkou ve smyčce může být libovolný booleovský výraz. Když výraz vrátí nenulovou hodnotu, pak je podmínka „true“ a pokud výraz vrátí nulovou hodnotu, podmínka se stane „false“. Pokud se podmínka stane pravdivou, pak se smyčka iteruje sama, a pokud se podmínka stane nepravdivou, pak ovládací prvek přejde na další řádek kódu bezprostředně následovaného smyčkou.
Příkazy nebo tělo smyčky může být buď prázdný příkaz nebo jeden příkaz nebo blok příkazů.
Pojďme diskutovat o práci smyčky. V příkladu níže bude kód vytištěn od 1 do 10.
// příklad je v Javě. class while {public static void main (args []) {int n = 0; zatímco (n <= 10) {n ++; system.out.println ("n =" + n); }}} // výstup n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10
Výchozí hodnota 'n' je 0, což mění podmínku, zatímco smyčka true. Ovládací prvek pak zadá tělo smyčky a hodnota 'n' se zvýší podle prvního příkazu v těle smyčky while. Pak se hodnota 'n' vytiskne a kontrola se vrátí zpět do stavu smyčky while, nyní hodnota 'n' je 1, která opět splňuje podmínku, a tělo smyčky je opět provedeno.
Toto pokračuje, dokud není podmínka pravdivá, jakmile se podmínka stane falešnou, smyčka je ukončena. Stejně jako u smyčky smyčka while také nejprve zkontroluje stav a pak provede tělo smyčky.
Definice smyčky do-while
Stejně jako v případě smyčky, pokud se podmínka řízení stane v první iteraci pouze false, pak tělo smyčky while není provedeno vůbec. Ale do-while smyčka je poněkud odlišná od smyčky. Cyklus do-while provede tělo smyčky alespoň jednou, i když je podmínka falešná při prvním pokusu.
Obecná forma do-while je následující.
udělat {. příkazy // tělo smyčky. . } zatímco (podmínka);
Ve smyčce do-while, tělo smyčky nastane před podmínkou řízení a podmíněný příkaz je na konci smyčky. Stejně jako v případě smyčky, i zde, tělo smyčky může být prázdné, protože jak C ++, tak Java povolují nulový příkaz, nebo může existovat pouze jeden příkaz nebo blok příkazů. Podmínkou je také booleovský výraz, který platí pro všechny nenulové hodnoty.
V do-while smyčce ovládací prvek nejprve dosáhne příkazu v těle smyčky do-while. Příkazy v těle jsou provedeny jako první a pak kontrola dosáhne stavu části smyčky. Podmínka je ověřena a pokud je pravdivá, smyčka je znovu iterována a pokud je podmínka nepravdivá, pak ovládací prvek pokračuje na další řádek bezprostředně po smyčce.
Pojďme si to představit implementací výše uvedeného příkladu do-while.
// příklad je v Javě. třída zatímco {public static void main (args []) {int n = 1; do {system.out.println ("n =" + n); n ++; } zatímco (n <10)}} // výstup n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10
Zde se hodnota n = 1, kterou ovládací prvek obnoví na tělo smyčky, hodnota 'n' se vytiskne a pak se jeho hodnota zvýší. Potom řízení pokračuje do stavu do-while smyčky; podmínka je ověřena, což se ukáže jako pravdivé pro n = 1, takže smyčka je znovu iterována a pokračuje, dokud se stav nestane falešným.
Klíčové rozdíly mezi časem a do-Loop
- Smyčka while kontroluje stav při spuštění smyčky a je-li podmínka splněna, je proveden příkaz uvnitř smyčky. Ve smyčce do-while je podmínka kontrolována po provedení všech příkazů v těle smyčky.
- Pokud je podmínka ve smyčce while nepravdivá, není proveden jediný příkaz uvnitř smyčky a pokud je podmínka ve smyčce 'do-while' nepravdivá, pak je tělo smyčky provedeno alespoň jednou, poté je podmínka testována.
Závěr:
Zatímco smyčka do-while a do-while jsou iteračním příkazem, chceme-li to nejprve, podmínka by měla být ověřena a pak příkazy uvnitř smyčky musí být provedeny pak smyčkou while. Pokud chcete testovat podmínku ukončení na konci smyčky, pak se použije smyčka do-while.