Martin Svoboda

Martin Svoboda - Blog

Cykly 4: continue, break, pass a exit


V Pythonu můžeme pomocí cyklů opakovaně vykonávat blok kódu. Avšak v určitých případech potřebujeme mít větší kontrolu nad průběhem smyčky, a právě zde přichází na řadu příkazy jako continue, break, pass a exit. V tomto článku si projdeme každý z těchto příkazů a ukážeme si jejich použití na praktických příkladech.

6.4.1. Continue

Příkaz continue umožňuje přeskočit zbytek aktuální iterace a pokračovat od začátku další iterace. Toto je užitečné, pokud chceme některé prvky v cyklu ignorovat.

for i in range(10):
    if i == 5:
        continue  # Skočí na začátek další iterace
    print(i)
print("Konec cyklu.")

V tomto příkladu se číslo 5 nevypíše, protože při dosažení této hodnoty smyčka skočí na další iteraci.

Příkaz continue v Pythonu

Stejně tak lze přeskočit sudá čísla pomocí modulu %:

for i in range(10):
    if i % 2 == 0:
        continue  # Přeskočí sudá čísla
    print(i)
print("Konec cyklu.")

V tomto případě se můžeme použití příkazu continue vyhnout pomocí kroku v range(), ale ne vždy je to možné.

for i in range(1, 10, 2):
    print(i)
print("Konec cyklu.")

V programování, tak jako ve většině oborů platí, že výsledku je možné dosáhnout různými způsoby.

6.4.2. Break

Příkaz break okamžitě ukončí celý cyklus, jakmile je podmínka splněna, bez ohledu na zbývající iterace.

for i in range(10):
    if i == 5:
        break  # Ukončí cyklus
    print(i)
print("Konec cyklu.")

Tento cyklus se ukončí při dosažení čísla 5.

Příkaz continue v Pythonu

break je často používán uvnitř cyklu while pro zastavení cyklu při splnění určité podmínky.

i = 1
while True:
    if i == 7:
        break  # Ukončí cyklus při i == 7
    print(i)
    i += 1

6.4.3. Pass

Příkaz pass nemá žádný vliv na průběh kódu, ale umožňuje vytvořit zástupné místo tam, kde plánujeme implementovat budoucí kód.

for i in range(10):
    if i == 5:
        pass  # Zástupný příkaz, zatím nic nedělá
        # todo: Implementovat něco
    print(i)
print("Konec cyklu.")

V tomto příkladu necháváme místo pro budoucí implementaci, aniž bychom ovlivnili průběh cyklu. Jde o to, že víme, že v kódu potřebujeme podmínku, která by měla spouštěně najaký kód, ale chceme se nyní soustředit na jinou část kódu, tak připravíme podmínku a protože v podmínce vždy musí něco být, tak tam umístíme pass, který nic nedělá, takže máme jistotu, že nám neovlivní zbytek našeho kódu.

6.4.4. Exit

Funkce exit() ukončí celý program, což je užitečné, pokud chcete zastavit provádění celého programu při splnění určité podmínky.

for i in range(10):
    if i == 5:
        exit()  # Ukončí program
    print(i)
print("Tento řádek se již nevykoná.")

Program se zastaví při dosažení hodnoty 5, takže se čísla od 0 do 4 vypíší, ale zbytek programu již neběží.

Příkaz continue v Pythonu

Shrnutí

Příkazy continue, break, pass a funkce exit() nám poskytují flexibilitu při práci s cykly v Pythonu.

  • continue přeskočí zbytek aktuální iterace a pokračuje na další.
  • break okamžitě ukončí smyčku.
  • pass je prázdný příkaz, který nic nevykonává, ale slouží jako zástupce pro budoucí kód, splňující syntaktické požadavky jazyka.
  • exit() slouží k ukončení celého programu a měl by se používat s rozmyslem, neboť kompletně zastaví běh aplikace.

Tyto příkazy nejsou v běžném kódu používány často, ale v určitých situacích mohou výrazně zjednodušit a zpřehlednit kód.

Příkaz continue v Pythonu

6.4.5. Kontrolní otázky

  1. K čemu slouží příkaz continue? Uveď jednoduchý příklad jeho použití.
  2. Vysvětli, jak funguje příkaz break. Uveď jednoduchý příklad jeho použití.
  3. Jak se v jazyce Python používá příkaz pass? Kde se obvykle setkáte s jeho použitím?
  4. K čemu slouží funkce exit()? Jak se liší od příkazu break?
  5. Je lepší se v jazyce Python vyhnout používání příkazů continue, break, pass a exit? Vysvětlete proč nebo proč ne.

6.4.6. Kvízy

Kvíz:

Jaký bude výstup tohoto kódu?

for i in range(10):
    if i == 3:
        continue
    print(i)
  1. Čísla od 0 do 10
  2. Čísla od 0 do 10, kromě 3
  3. Čísla od 0 do 9, kromě 3
  4. Čísla od 1 do 10, kromě 3
Kvíz:

Jakou funkci má příkaz break?

  1. Vynutí si okamžité ukončení cyklu.
  2. Přeskočí zbytek aktuální smyčky a přejde k další iteraci.
  3. Pozastaví provádění smyčky.
  4. Přeruší program a způsobí chybu.

6.4.7. Cvičení

Cvičení 1: Vynechání čísel

Napište program, který vypíše všechna čísla od 0 do 100, ale vynechá čísla dělitelná 7 nebo 9. Použijte příkaz continue.

Cvičení 2: Generátor hesel

Vytvořte program, který požádá uživatele o zadání hesla. Použijte cyklus k zajištění, že heslo obsahuje alespoň jedno číslo, jedno velké písmeno a jedno malé písmeno. Pokud heslo nesplňuje tato kritéria, použijte continue a vyzvěte uživatele k zadání nového hesla. Když heslo splňuje podmínky, ukončete cyklus příkazem break.

Cvičení 4: Hádání čísel

Napište program, který náhodně vybere číslo v rozmezí 1 až 20 a dá uživateli pět pokusů na jeho uhodnutí. Použijte break, pokud uživatel uhodne číslo, a vypište zprávu, pokud uživatel neuspěje ani po pěti pokusech.