Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Následující verze | Předchozí verze | ||
| ccpp:cykluswhile [2019/10/10 16:04] – vytvořeno durdilova | ccpp:cykluswhile [2021/12/22 14:03] (aktuální) – bures | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| ====== Cyklus while ====== | ====== Cyklus while ====== | ||
| - | Cyklus while je cyklem s podmínkou na začátku. Nejprve se vyhodnotí podmínka | + | Cyklus while je cyklem s podmínkou na začátku. Nejprve se vyhodnotí podmínka |
| Cyklus while se skládá ze dvou částí: | Cyklus while se skládá ze dvou částí: | ||
| - | * hlavička | + | * Podmínka |
| * klíčové slovo **while** | * klíčové slovo **while** | ||
| * podmínka cyklu | * podmínka cyklu | ||
| - | * tělo cyklu - vlastní příkaz, nebo blok kódu, který se bude vykonávat. Musí zde být příkaz, který má vliv na podmínku, aby nedošlo k zacyklení. | + | * Příkaz/blok příkazů které se budou vykonávat |
| - | ===== Syntaxe cyklu for ===== | + | ===== Syntaxe cyklu while ===== |
| <code c> | <code c> | ||
| - | // S jedním příkazem | + | // S jedním příkazem |
| - | for (inicializace; | + | while (podminka) |
| prikaz; | prikaz; | ||
| - | // S blokem příkazů | + | // S blokem příkazů |
| - | for (inicializace; | + | while (podminka) |
| { | { | ||
| prikaz1; | prikaz1; | ||
| prikaz2; | prikaz2; | ||
| - | //... | + | // ... |
| + | prikazN; | ||
| } | } | ||
| </ | </ | ||
| ==== Poznámky ==== | ==== Poznámky ==== | ||
| - | * Při zachování středníků se dá libovolná část hlavičky vynechat - // | ||
| * Podmínka cyklu nemusí být platná už před první iterací. Cyklus pak nevykoná ani jednu iteraci. | * Podmínka cyklu nemusí být platná už před první iterací. Cyklus pak nevykoná ani jednu iteraci. | ||
| * Cykly while a for se dají mezi sebou navzájem transformovat. | * Cykly while a for se dají mezi sebou navzájem transformovat. | ||
| - | * Při použití operátoru //čárka//, lze v libovolné části hlacičky vykonávat více operací. - // | + | * Pokud bude podmínka vždy pravdivá (tautologie), dojede k zacyklení programu |
| - | ===== Průběh cyklu for ===== | + | ===== Průběh cyklu while ===== |
| - | - **inicializační část** | + | |
| - **ověření podmínky** | - **ověření podmínky** | ||
| - podmínka platí | - podmínka platí | ||
| - **vykonání těla cyklu** | - **vykonání těla cyklu** | ||
| - | - **aktualizační část** | + | - **jdi zpět na ověření podmínky** |
| - | - opakuj krok 2. | + | |
| - podmínka neplatí | - podmínka neplatí | ||
| - **konec cyklu** | - **konec cyklu** | ||
| ===== Ukázky ===== | ===== Ukázky ===== | ||
| - | ==== Výpis čísel od 1 do 10 pomocí cyklu for ==== | + | ==== Výpis čísel od 1 do 10 pomocí cyklu while ==== |
| <code c> | <code c> | ||
| - | for (int cislo = 1; cislo <= 10; cislo++) | + | int cislo = 1; // Inicializujeme řídící proměnnou |
| - | printf(" | + | |
| - | </ | + | |
| - | ==== Ekvivalentní výpis čísel od 1 do 10 pomocí cyklu while ==== | + | |
| - | <code c> | + | |
| - | int cislo = 1; // Inicializační část | + | |
| while (cislo <= 10) // Podmínka cyklu | while (cislo <= 10) // Podmínka cyklu | ||
| { | { | ||
| - | printf(" | + | printf(" |
| - | cislo++; // Aktualizační | + | cislo++; // Zvětšení hodnoty o jedničku |
| } | } | ||
| </ | </ | ||
| - | ==== Vypsání prvků pole o kapacitě 42 ==== | + | ==== Ekvivalentní výpis čísel od 1 do 10 pomocí cyklu for ==== |
| <code c> | <code c> | ||
| - | double pole[42] = {}; | + | for (int cislo = 1; cislo <= 10; cislo++; ) // Inicializační část; Podmínka cyklu; Aktualizační část |
| - | // inicializace prvků pole | + | |
| - | for (int i = 0; i < 42; i++) | + | |
| { | { | ||
| - | printf(" | + | printf(" |
| - | if (i != 41) | + | |
| - | printf(", | + | |
| } | } | ||
| - | putchar(' | ||
| </ | </ | ||
| + | |||
| + | ===== Příklady k procvičení ===== | ||
| + | * Výpis čísel od 10 do 1 | ||
| + | * Vypsat N-krát znak * (N je celé číslo ze vstupu) | ||
| + | * Výpis násobků zadaného čísla N (1 * N, 2 * N, ... 10 * N) | ||
| + | * Výpis celých čísel v zadaném intervalu <A, B>, (A, B>, nebo (A, B) | ||