Ú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:

    1. Nejprve se provede blok uvnitř { }.

    2. Poté se vyhodnotí logická podmínka.

    3. Pokud je podmínka true, cyklus běží znovu. Pokud je false, cyklus končí.

  • Rozdíl oproti while:

    • while může proběhnout 0×, pokud podmínka není splněna hned na začátku.

    • do…while probě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í, že do…while probě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…while se liší od while tí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.