Lecture Thumbnail

Cyklus while

Počítače sú skvelé v opakovaní nudných úloh. Zistíš, ako nechať kód bežať dokola, kým sa nesplní tvoja podmienka.

Čo je to cyklus?

Doteraz sa náš kód spúšťal len raz — riadok po riadku, zhora nadol. Čo ak ale chceme, aby sa nejaká časť kódu opakovala? Na to slúžia cykly. Cyklus ti umožní spustiť rovnaký blok kódu viackrát, bez toho, aby si ho musel kopírovať. Napríklad, keď chceme vypísať čísla od 1 do 100, nebudeme písať 100 riadkov. Namiesto toho napíšeme cyklus, ktorý to spraví za nás stokrát.

V Pythone poznáme dva základné cykly: while a for. V tejto lekcii sa pozrieme na while. Cyklus for si preberieme neskôr.

Cyklus while

Cyklus while funguje na podobnom princípe ako podmienka if. Rozdiel je v tom, že if vykoná blok kódu raz, ak je podmienka splnená. Cyklus while ho bude vykonávať stále, pokiaľ podmienka platí. Takýto cyklus sa nazýva cyklus s neznámym počtom opakovaní, nakoľko nevieme, koľkokrát sa zopakuje. Môže sa zopakovať raz, tri razy, nekonečne veľakrát alebo ani raz.

Syntax cyklu while vyzerá takto:

Cyklus sa opakuje, kým je podmienka True. Akonáhle prestane platiť, cyklus sa ukončí a program pokračuje ďalej.

Všimni si, že podmienka vo while je rovnaká, akú by si napísal v if. Môžeš používať rovnaké operátory porovnávania (==, !=, >, <, ...) aj logické operátory (and, or, not).

Pozor!

Ak podmienka nikdy neprestane platiť, cyklus pobeží donekonečna! Toto sa nazýva nekonečný cyklus (z angl. infinite loop). Zväčša sa kvôli takémuto cyklus program zasekne a predčasne ukončí.

Prerušenie cyklu - break

Niekedy chceme cyklus ukončiť skôr, ako podmienka prestane platiť. Na to slúži príkaz break. Keď ho program vykoná, okamžite ukončí cyklus a pokračuje kódom pod ním.

Tento príkaz sa využíva väčšinou v "nekonečných cykloch", ktoré avšak vieme, že raz ukončíme. Zväčša to býva while True cyklus. Tento cyklus by prakticky nemal nikdy skončiť, jeho podmienka bude vždy platiť (True je vždy pravdivý), ale niekde v našom while bloku zavoláme break, ktorý tento cyklus ukončí.

Tento príklad by sme mohli prepísať aj s využitím break. V tomto prípade s cyklom while True, čo je cyklus, ktorý by bežal donekonečna — ibaže my ho sami prerušíme pomocou break, keď je splnená naša podmienka správneho písmena.

Všimni si!

  1. Oba kódy robia to isté, len sú napísané inak.
  2. V programovaní väčšinou existuje viacero správnych spôsobov, ako dosiahnuť rovnaký výsledok.

Kedy použiť while?

Cyklus while je ideálny vtedy, keď nevieš vopred, koľkokrát sa má niečo opakovať. Napríklad:

  • Čakáš na nejakú udalosť (napr. kým súbor prestane byť zamknutý).
  • Hráš hru, kým hráč neprehrá alebo nevyhrá.
  • Spúšťaš nejaký proces, pokým nevráti správny/očakávaný výsledok.

Zopakuj si!

  1. Cyklus while opakuje blok kódu, kým platí jeho podmienka.
  2. Používa sa vtedy, keď nevieme vopred, koľkokrát sa má cyklus opakovať. 
  3. Pomocou premennej (počítadla) vieme riadiť, koľkokrát sa cyklus vykoná.
  4. Príkaz break ukončí cyklus okamžite, odkiaľkoľvek vo vnútri.
  5. while True tvorí cyklus, ktorý sa dá ukončiť len pomocou break.
8. Zoznamy - hromadné ukladanie dát