Stewdent.eu
▾

Cyklus while

Cyklus while opakuje blok príkazov dovtedy, kým platí zadaná podmienka. Je ideálny, keď vopred nevieš, koľkokrát sa má cyklus opakovať.

Posledná aktualizácia: 2. marca 2026

★★☆☆☆ Stupeň 2computingprogrammingcykluswhileopakovanie3 min čítania

Nahlásiť chybu

Cyklus je základná programová štruktúra, ktorá umožňuje opakovanie príkazov bez toho, aby si ich musel písať znova a znova. Cyklus while opakuje blok kódu, kým platí určitá podmienka.

Syntax cyklu while

while podmienka:
    # telo cyklu — vykoná sa, kým podmienka platí

Python najprv skontroluje podmienku. Ak je True, vykoná telo cyklu. Potom znova skontroluje podmienku. Takto to pokračuje, kým podmienka nie je False — vtedy sa cyklus ukončí a program pokračuje za cyklom.

Príklad — odpočítavanie

pocitadlo = 5

while pocitadlo > 0:
    print(pocitadlo)
    pocitadlo -= 1   # zmenšuj pocitadlo, aby sa cyklus raz skončil

print("Štart!")

Výstup:

5
4
3
2
1
Štart!
Poznámka

Premenná pocitadlo sa v každom opakovaní zmenší o 1. Keď dosiahne hodnotu 0, podmienka pocitadlo > 0 prestane platiť a cyklus sa ukončí.

Vstup od používateľa

Cyklus while je ideálny, keď čakáš na správny vstup:

heslo = ""

while heslo != "tajne123":
    heslo = input("Zadaj heslo: ")

print("Prístup povolený!")

Cyklus sa opakuje, kým používateľ nezadá správne heslo. Nevieš vopred, koľko pokusov bude potrebovať — to je presne situácia pre while.

Nekonečný cyklus

Ak podmienka nikdy neprestane platiť, cyklus beží donekonečna. Toto je zvyčajne chyba:

# POZOR — nekonečný cyklus!
x = 1
while x > 0:
    print(x)
    x += 1   # x rastie, nikdy nebude <= 0
Upozornenie

Nekonečné cykly zablokujú program. Vždy sa uisti, že v tele cyklu dochádza k zmene, ktorá raz spôsobí, že podmienka prestane platiť. V Pythone môžeš nekonečný cyklus prerušiť stlačením Ctrl+C.

Príkaz break

Niekedy chceš cyklus ukončiť predčasne, napríklad keď nájdeš hľadanú hodnotu:

while True:   # zdanlivo nekonečný cyklus
    odpoved = input("Hádaj číslo (1–10): ")
    if odpoved == "7":
        print("Správne!")
        break   # okamžite ukončí cyklus
    else:
        print("Skús znova.")

Príkaz break okamžite ukončí cyklus, aj keď podmienka stále platí.

Príkaz continue

continue preskočí zvyšok aktuálneho opakovania a prejde na ďalšie:

cislo = 0

while cislo < 10:
    cislo += 1
    if cislo % 2 == 0:
        continue   # preskočí párne čísla
    print(cislo)
# Vypíše: 1 3 5 7 9
Tip

Používaj while vtedy, keď nevieš vopred, koľko opakovaní bude potrebných. Keď vieš presný počet opakovaní, zvyčajne je vhodnejší cyklus for.

Cvičné príklady

Koľkokrát sa vykoná telo nasledujúceho cyklu? n = 1; while n < 16: n = n * 2

Zobraziť odpoveď
4-krát. n nadobúda hodnoty: 1 → 2 → 4 → 8 → 16. Keď n = 16, podmienka n < 16 prestane platiť a cyklus sa skončí. Telo sa vykonalo pri n = 1, 2, 4, 8.

Čo je nekonečný cyklus a ako mu predísť?

Zobraziť odpoveď
Nekonečný cyklus nastane, keď podmienka cyklu while nikdy neprestane platiť, napríklad keď premenná v podmienke sa v tele cyklu nemení alebo rastie nesprávnym smerom. Predídeš mu tým, že v každom opakovaní meníš premennú tak, aby raz podmienka prestala byť pravdivá.