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.
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.
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ěží.
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.
6.4.5. Kontrolní otázky
- K čemu slouží příkaz
continue
? Uveď jednoduchý příklad jeho použití. - Vysvětli, jak funguje příkaz
break
. Uveď jednoduchý příklad jeho použití. - Jak se v jazyce Python používá příkaz
pass
? Kde se obvykle setkáte s jeho použitím? - K čemu slouží funkce
exit()
? Jak se liší od příkazubreak
? - Je lepší se v jazyce Python vyhnout používání příkazů
continue
,break
,pass
aexit
? Vysvětlete proč nebo proč ne.
6.4.6. Kvízy
Jaký bude výstup tohoto kódu?
for i in range(10):
if i == 3:
continue
print(i)
- Čísla od 0 do 10
- Čísla od 0 do 10, kromě 3
- Čísla od 0 do 9, kromě 3
- Čísla od 1 do 10, kromě 3
Jakou funkci má příkaz break
?
- Vynutí si okamžité ukončení cyklu.
- Přeskočí zbytek aktuální smyčky a přejde k další iteraci.
- Pozastaví provádění smyčky.
- 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.