Ako funguje cyklus do-while v jazyku Java?
Slučka Java do-while zabezpečuje, že program vykonáva inštrukcie, kým nie je dosiahnutá definovaná podmienka ukončenia. Slučku môžete kombinovať aj s inými funkciami.
Čo je to cyklus do-while?
Slučka do-while sa v jazyku Java používa na vykonanie a opakovanie inštrukcie, kým nie je splnená definovaná podmienka ukončenia (t. j. true). Podobné slučky existujú vo väčšine programovacích jazykov a používajú sa na viacnásobné vykonanie určitých blokov kódu. Slučku je možné kombinovať aj s inými funkciami. V jazyku Java je slučka do-while variantom slučky while.
Aká je syntax pre cyklus do-while v jazyku Java?
Syntaxa cyklu do-while v Jave vyzerá takto:
do {
//statements
}
while(condition);javaSlučka začína kľúčovým slovom do, za ktorým nasledujú pokyny alebo príkazy, ktoré má program vykonať. Za uzatváracími zátvorkami sa nachádza kľúčové slovo while, ktoré spúšťa podmienku ukončenia slučky. Táto podmienka je vždy vyjadrená ako boolovský výraz, čo znamená, že v rámci logiky programu sa vyhodnotí ako pravdivá alebo nepravdivá. Bežným a užitočným príkladom takéhoto výrazu je premenná počítadla, ktorá umožňuje určiť počet opakovaní slučky.
Ako funguje slučka
Keď sa vykonáva cyklus Java do-while, program skontroluje inštrukcie v tele cyklu a vykoná ich. Po dokončení skontroluje podmienku ukončenia. Ak je táto podmienka pravdivá (t. j. ešte nie je splnená), cyklus začne od začiatku a opakuje všetky príkazy, kým sa znovu neskontroluje. Akonáhle je však podmienka ukončenia splnená a teda nepravdivá, program ukončí cyklus a pokračuje v spracovaní zvyšku kódu.
Príklad jednoduchého cyklu
Aby sme ilustrovali fungovanie slučky, ukážeme vám jej štruktúru na jednoduchom príklade. V nasledujúcom príklade priradíme premennej x hodnotu 10. Pomocou operátora Java ++ sa táto hodnota v každom cykle zvýši o 1 a zobrazí sa pomocou príkazu Java System.out.println. Naša podmienka ukončenia je hodnota 20, takže slučka sa opakuje, pokiaľ je x menšie ako 20. Kód vyzerá takto:
public class Main {
public static void main(String[] args) {
int x = 10;
do {
System.out.println(x);
x++;
}
while (x < 20);
}
}javaAk tento kód spustíme, dostaneme nasledujúci výstup:
10
11
12
13
14
15
16
17
18
19javaProgram potom opäť vykoná slučku, ale rozpozná hodnotu x ako 20. Keďže už nie je menšia ako 20, podmienka ukončenia je splnená a slučka do-while je ukončená.
Ako vytvoriť nekonečnú slučku s hodnotou true
Pomocou boolovského výrazu true je možné navrhnúť nekonečnú slučku s do-while. Tá sa nikdy sama nezastaví, pretože nemožno dosiahnuť žiadnu podmienku ukončenia. Na ukončenie slučky musíte ručne použiť kombináciu [Ctrl] + [C]. Príslušný kód vyzerá takto:
public class Main {
public static void main(String[] args) {
do {
System.out.println("You are in an endless loop.");
}
while(true);
}
}javaAk spustíte tento kód, dostanete nasledujúci výstup:
You are in an endless loop.
You are in an endless loop.
You are in an endless loop.
You are in an endless loop.
You are in an endless loop.
ctrl+cjavaAk slučku neukončíte ručne, bude pokračovať v behu.
Rozdiel medzi do-while a while
V mnohých ohľadoch sú sa slučky Java do-while a while podobné. Lišia sa však v jednom dôležitom aspekte, a to v tom, že slučka while vyhodnocuje svoju podmienku ukončenia hneď na začiatku, zatiaľ čo slučka do-while sa vždy vykoná aspoň raz v plnom rozsahu, než sa môže ukončiť. Ak potrebujete zaistiť, aby sa príkazy vykonali aspoň raz, mali by ste použiť slučku do-while. Ak je rozhodnutie o ukončení kritické, zvážte použitie slučky while riadenej hlavou.