Úloha 3 – Cyklus s minimálně jedním průchodem

Site: Moodle ZČU
Course: Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný)
Book: Úloha 3 – Cyklus s minimálně jedním průchodem
Printed by: Nepřihlášený host
Date: Sunday, 18 October 2026, 5:55 AM

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

Úloha

Zadání (kontext úlohy):

Napiš program, který zobrazí jednoduché textové menu s možnostmi:
1 – zobrazí pozdrav
2 – vypíše součet čísel od 1 do 5
3 – ukončí program

Menu se musí uživateli ukázat vždy minimálně jednou a opakuje se tak dlouho, dokud nezvolí možnost 3.


Cíl úlohy:

Procvičit cyklus do…while s minimálně jedním průchodem, práci s prompt, větvení pomocí if–else a ukončovací podmínku.


Vstupní podmínky:
  • Student pracuje pouze s nově vytvořeným souborem script.js.

  • Použij prompt() pro výběr volby.

  • Převáděj vstup na číslo pomocí Number().


Požadovaný výstup:
  • Pokud uživatel zadá 1 → alert("Ahoj! Vítej v programu.")

  • Pokud zadá 2 → alert("Součet 1+2+3+4+5 = 15")

  • Pokud zadá 3 → alert("Program ukončen.") a cyklus skončí

  • Pokud zadá cokoli jiného → alert("Neplatná volba, zkus to znovu.")


Doplňující pokyny:
  • Cyklus piš ve tvaru do { ... } while (podminka).

  • Podmínkou bude, že volba není 3.

  • Uvnitř bloku použij if–else if–else na větvení.

  • Program se nikdy nezastaví „sám“ – zastaví se až volbou 3.

Řešení úlohy

Co je zde splněno

  • Použit cyklus do…while, který se spustí vždy minimálně jednou.
  • Použity šablonové řetězce (template literals) pro čistší zápis menu i výpisu výsledku.

  • Hodnota z prompt() převedena na číslo pomocí Number().

  • Větvení pomocí if – else if – else.

  • Cyklus se opakuje, dokud volba není rovna 3.

  • Po volbě 3 se zobrazí hláška a program končí.

Poznámky

  • Díky do…while se menu vždy ukáže alespoň jednou.

  • Neplatná volba je ošetřena a uživatel se vrátí k menu.