Cyklus while

Představte si, že potřebujete vypsat čísla od 1 do 100. Mohli byste stokrát napsat printf, ale trvalo by to věčnost a jakákoli pozdější změna by byla ještě horší. Programy takovou opakovanou práci dělají pořád: projdou všechny žáky ve třídě, zkontrolují každé zboží v obchodě nebo 60krát za sekundu překreslí obrazovku hry. K tomu slouží cykly. Cyklus je část kódu, která se provádí znovu a znovu.

Nejjednodušší je cyklus while (dokud). Opakuje blok kódu, dokud platí jeho podmínka:

int cislo = 1;
while (cislo <= 5) {
    printf("%d\n", cislo);
    cislo++;
}

Vypíše:

1
2
3
4
5

Cyklus while vypadá podobně jako if: klíčové slovo, podmínka v kulatých závorkách a blok kódu ve složených závorkách. Rozdíl je v tom, že if provede svůj blok nejvýše jednou, kdežto while se k podmínce stále vrací. Krok za krokem:

  1. Program vytvoří proměnnou cislo s hodnotou 1.
  2. Zkontroluje podmínku cislo <= 5. Platí, takže program provede blok: vypíše 1 a cislo++ zvýší cislo na 2.
  3. Vrátí se k podmínce. 2 <= 5 stále platí, takže vypíše 2 a zvýší cislo na 3.
  4. A tak dále, dokud nebude cislo rovno 6. Pak podmínka neplatí, cyklus skončí a program pokračuje kódem za uzavírací složenou závorkou } cyklu.

Jednomu provedení bloku se říká průchod cyklem (také iterace). Tento cyklus má pět průchodů. Kdybyste chtěli vypsat čísla až do 100, stačilo by změnit 5 na 100.

Blok cyklu odsazujte o 4 mezery, stejně jako blok if. Na první pohled pak uvidíte, co se opakuje. Kód za cyklem se provede jen jednou, až cyklus skončí:

int cislo = 1;
while (cislo <= 3) {
    printf("%d\n", cislo);
    cislo++;
}
printf("Hotovo\n");
1
2
3
Hotovo

Všimněte si řádku cislo++. Něco v bloku musí měnit proměnnou z podmínky, aby podmínka jednou přestala platit. Bez toho by cyklus nikdy neskončil. Co se pak stane, uvidíte v dalším cvičení.

Pokyny

Smažte tři řádky, které vypisují 1, 2 a 3. Místo nich vytvořte proměnnou cislo typu int s hodnotou 10. Cyklus s ní bude počítat.

Pod ni napište cyklus while, který poběží, dokud bude cislo menší nebo rovno 20. V cyklu vypište cislo na samostatný řádek a potom ho zvyšte o 1. Program vypíše čísla od 10 do 20, každé na samostatném řádku.

Za cyklem, pod jeho uzavírací složenou závorkou }, vypište Po cyklu: a hodnotu proměnné cislo. Poslední řádek výpisu bude Po cyklu: 21. Proměnná skončí na 21, a ne na 20, protože se cyklus zastaví, až když podmínka neplatí.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

1/11