Jak funguje smyčka do-while v jazyce Java?
Smyčka Java do-while zajišťuje, že program provádí instrukce, dokud není splněna definovaná podmínka ukončení. Smyčku lze také kombinovat s jinými funkcemi.
Co je to smyčka do-while?
Smyčka do-while se v jazyce Java používá k provedení a opakování instrukce, dokud není splněna definovaná podmínka ukončení (tj. true). Podobné smyčky existují ve většině programovacích jazyků a používají se k opakovanému provedení určitých bloků kódu. Smyčku lze také kombinovat s jinými funkcemi. V jazyce Java je smyčka do-while variantou smyčky while.
Jaká je syntaxe pro smyčku do-while v Javě?
Syntaxe smyčky do-while v Javě vypadá takto:
do {
//statements
}
while(condition);javaSmyčka začíná klíčovým slovem do, za kterým následují pokyny nebo příkazy, které má program provést. Za závorkou se objevuje klíčové slovo while, které spouští podmínku ukončení smyčky. Tato podmínka je vždy vyjádřena jako booleovský výraz, což znamená, že v logice programu se vyhodnotí jako pravdivá nebo nepravdivá. Běžným a užitečným příkladem takového výrazu je proměnná čítače, která umožňuje určit, kolikrát se má smyčka opakovat.
Jak funguje smyčka
Při provádění smyčky do-while v jazyce Java program zkontroluje instrukce v těle smyčky a provede je. Po dokončení zkontroluje podmínku ukončení. Pokud je tato podmínka splněna (tj. ještě nebyla splněna), smyčka začne od začátku a opakuje všechny příkazy, dokud není znovu zkontrolována. Jakmile je však podmínka ukončení splněna a je tedy nesplněna, program smyčku ukončí a pokračuje ve zbytku kódu.
Příklad jednoduché smyčky
Abychom ilustrovali, jak smyčka funguje, ukážeme vám její strukturu na jednoduchém příkladu. V následujícím příkladu přiřadíme proměnné x hodnotu 10. S pomocí operátoru Java ++ se tato hodnota v každém průchodu zvýší o 1 a zobrazí se pomocí příkazu Java System.out.println. Naší podmínkou ukončení je hodnota 20, takže smyčka se opakuje, dokud je x menší než 20. Kód vypadá takto:
public class Main {
public static void main(String[] args) {
int x = 10;
do {
System.out.println(x);
x++;
}
while (x < 20);
}
}javaPokud tento kód spustíme, dostaneme následující výstup:
10
11
12
13
14
15
16
17
18
19javaProgram poté znovu provede smyčku, ale rozpozná hodnotu x jako 20. Jelikož již není menší než 20, je splněna podmínka ukončení a smyčka do-while je ukončena.
Jak vytvořit nekonečnou smyčku s hodnotou true
Pomocí booleovského výrazu true je možné navrhnout nekonečnou smyčku s do-while. Ta se nikdy sama nezastaví, protože nelze dosáhnout žádné podmínky ukončení. Chcete-li smyčku ukončit, musíte ručně použít kombinaci [Ctrl] + [C]. Odpovídající kód vypadá takto:
public class Main {
public static void main(String[] args) {
do {
System.out.println("You are in an endless loop.");
}
while(true);
}
}javaPokud tento kód spustíte, zobrazí se následující 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+cjavaPokud smyčku neukončíte ručně, bude pokračovat v běhu.
Rozdíl mezi do-while a while
V mnoha ohledech jsou smyčky Java do-while a while podobné. Liší se však v jednom zásadním aspektu, a to v tom, že smyčka while vyhodnotí svou podmínku ukončení hned na začátku, zatímco smyčka do-while se vždy alespoň jednou provede v plném rozsahu, než může být ukončena. Pokud potřebujete zajistit, aby se příkazy provedly alespoň jednou, měli byste použít smyčku do-while. Pokud je rozhodnutí o ukončení kritické, zvažte místo toho použití smyčky while řízené hlavou.