Úloha 3 – Cyklus s minimálně jedním průchodem
Úvod do úlohy
Vedle cyklu while, který kontroluje podmínku hned na začátku, existuje v JavaScriptu také do…while cyklus. Jeho hlavní rozdíl spočívá v tom, že blok kódu se vždy provede alespoň jednou, a teprve potom se vyhodnocuje podmínka pro pokračování. Tento přístup je užitečný v situacích, kdy určitý krok musí proběhnout minimálně jednou – typicky získání uživatelského vstupu, zobrazení nabídky nebo inicializace výchozí hodnoty.
Teorie a principy
-
Zápis cyklu
do…while:
-
Průběh:
-
Nejprve se provede blok uvnitř
{ }. -
Poté se vyhodnotí logická podmínka.
-
Pokud je podmínka
true, cyklus běží znovu. Pokud jefalse, cyklus končí.
-
-
Rozdíl oproti
while:-
whilemůže proběhnout 0×, pokud podmínka není splněna hned na začátku. -
do…whileproběhne alespoň 1×, bez ohledu na počáteční hodnotu podmínky.
-
-
Použití:
-
získání vstupu od uživatele (musí být dotázán alespoň jednou),
-
inicializace, která se musí provést vždy,
-
opakování činnosti, dokud uživatel nechce skončit.
-
Praktické příklady kódu
1. Jednoduchý čítač s do…while
Tento kód vypíše čísla 0 až 4, podobně jako while, ale i kdyby byl i rovnou větší než 5, blok by se spustil aspoň jednou.
2. Cyklus, který proběhne i při nesplněné podmínce
I když podmínka x < 5 je hned na začátku false, blok se přesto provede jednou.
3. Praktické použití – zadávání hesla
Uživatel je vyzván k zadání hesla minimálně jednou, a pokud se splete, cyklus se opakuje.
4. HTML příklad – dotaz na číslo
Zde se zaručí, že uživatel zadá číslo minimálně jednou, a cyklus se ukončí teprve při splnění podmínky.
Typické chyby / záludnosti
-
Zapomenutá změna podmínky – pokud se v těle cyklu neprovádí krok k jejímu splnění, vznikne nekonečná smyčka.
-
Nejasnost v rozdílu od
while– studenti si často neuvědomí, žedo…whileproběhne vždy aspoň jednou. -
Nevhodné použití – pokud má cyklus možnost neproběhnout vůbec, je lepší použít obyčejný
while. -
Práce s typy – pozor při vyhodnocování vstupů (řetězce vs. čísla).
Shrnutí
-
do…whilese liší odwhiletím, že blok proběhne vždy alespoň jednou. -
Po provedení bloku se vyhodnocuje podmínka, a podle ní cyklus buď pokračuje, nebo končí.
-
Hodí se pro situace, kdy akce musí nastat minimálně jednou (zadání vstupu, zobrazení nabídky).
-
Důležité je vždy zajistit, aby podmínka mohla přestat platit → jinak vznikne nekonečný cyklus.