Následující verze | Předchozí verze |
ccpp:cykly [2019/10/10 15:55] – vytvořeno durdilova | ccpp:cykly [2021/05/24 11:04] (aktuální) – bures |
---|
==== Cykly ==== | ===== Iterace - cyklus ===== |
Často potřebujeme, aby program určitou činnost prováděl opakovaně. Pokud víme, kolikrát má cyklus proběhnout, použijeme cyklus for. | Často potřebujeme, aby program prováděl určitou činnost opakovaně - obecně tento postup můžeme nazvat **iterace**. **Cyklus** je jedna z nejjednoduších forem iterace, kdy definujeme specifickou **podmínku na začátku nebo konci** příkazu/bloku příkazů, které chceme opakovat, dokud je tato podmínka platná (''true''). Pokud je podmínka vyhodnocena jako neplatná (''false''), program pokračuje dalšími příkazy následujícími po cyklu. Pokud předem víme, kolikrát má cyklus proběhnout, nebo poutřebujeme partikulární proměnnou určijící jednotlivé iterace cyklu, můžeme použít tzv. **cyklus s řídící proměnnou**. |
Pokud opakování příkazů záleží na vyhodnocení podmínky, použijeme cyklus podmínkou na začátku nebo cyklus s podmínkou na konci. Který z nich použijeme, záleží na logice. Všechny cykly jsou vzájemně zaměnitelné. Tělo cyklu while i cyklu for nemusí proběhnout ani jednou. Tělocyklu do while vždy musí proběhnout minimálně jednou. | |
| |
**příklad - babička před vás postaví mísu buchet s tím, že** | V souhrnu tedy existují 3 druhy cyklů: |
Cyklus **for** - si máte vzít 4. | * Cyklus s [[ccpp:cykluswhile|podmínkou na začátku]] - **while** |
Cyklus **while** - můžete jíst, dokud je co. (Pokud si budete hrát s mobilem, může se stát, že všechny sní bratr). | * Cyklus s [[ccpp:cyklusdowhile|podmínkou na konci]] - **do-while** |
cyklus **do while** - máte jíést, dokud nebudete úplně přecpaní. | * Cyklus s [[ccpp:for-loop|řídící proměnnou]] - **for** |
| |
| Obecně jsou všechny druhy uvedených cyklu vzájemně zaměnitelné, volba nejvhodnějšího záleží na kontextu dané úlohy. |
| |
| Tělo cyklu **[[ccpp:cykluswhile|while]]** i cyklu **[[ccpp:for-loop|for]]** nemusí proběhnout ani jednou. Tělo cyklu **[[ccpp:cyklusdowhile|do while]]** vždy musí proběhnout minimálně jednou. |
| |
| ===== Příklad ===== |
| |
| Babička před vás postaví mísu buchet s tím, že |
| |
| * Cyklus **[[ccpp:for-loop|for]]** - si máte vzít 4 buchty. |
| * Cyklus **[[ccpp:cykluswhile|while]]** - můžete jíst, dokud je co. (Pokud si budete hrát s mobilem, může se stát, že všechny buchty sní bratr). |
| * Cyklus **[[ccpp:cyklusdowhile|do while]]** - máte jíst, dokud nebude mísa prázdná (bratr si hraje s mobilem a nejí). |