Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
ccpp:cykluswhile [2019/10/10 16:15] – 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 | + | * Příkaz/blok příkazů které |
- | * vlastní příkaz, nebo blok kódu, který | + | |
===== Syntaxe cyklu while ===== | ===== Syntaxe cyklu while ===== | ||
<code c> | <code c> | ||
- | // S jedním příkazem | + | // S jedním příkazem |
while (podminka) | while (podminka) | ||
prikaz; | prikaz; | ||
- | // S blokem příkazů | + | // S blokem příkazů |
while (podminka) | while (podminka) | ||
{ | { | ||
prikaz1; | prikaz1; | ||
prikaz2; | prikaz2; | ||
- | //... | + | // ... |
+ | prikazN; | ||
} | } | ||
</ | </ | ||
Řádek 28: | Řádek 27: | ||
* 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. | ||
- | * V těle cyklu musí být příkaz, který má vliv na podmínku. Jinak dojede k zacyklení programu. | + | * Pokud bude podmínka vždy pravdivá (tautologie), dojede k zacyklení programu |
===== Průběh cyklu while ===== | ===== Průběh cyklu while ===== | ||
Řádek 41: | Řádek 40: | ||
==== Výpis čísel od 1 do 10 pomocí cyklu while ==== | ==== Výpis čísel od 1 do 10 pomocí cyklu while ==== | ||
<code c> | <code c> | ||
- | int cislo = 1; // Inicializační část; | + | int cislo = 1; // Inicializujeme řídící proměnnou |
- | while (cislo <= 10) //Podmínka cyklu | + | while (cislo <= 10) // Podmínka cyklu |
{ | { | ||
printf(" | printf(" | ||
- | cislo++; //Aktualizační část | + | cislo++; // Zvětšení hodnoty o jedničku |
} | } | ||
</ | </ | ||
==== Ekvivalentní výpis čísel od 1 do 10 pomocí cyklu for ==== | ==== Ekvivalentní výpis čísel od 1 do 10 pomocí cyklu for ==== | ||
<code c> | <code c> | ||
- | int cislo = 1; | ||
for (int cislo = 1; cislo <= 10; cislo++; ) // Inicializační část; Podmínka cyklu; Aktualizační část | for (int cislo = 1; cislo <= 10; cislo++; ) // Inicializační část; Podmínka cyklu; Aktualizační část | ||
{ | { | ||
Řádek 56: | Řádek 54: | ||
} | } | ||
</ | </ | ||
- | ==== Vypsání prvků pole o kapacitě 42 ==== | + | |
- | <code c> | + | ===== Příklady k procvičení |
- | double pole[42] | + | * Výpis čísel od 10 do 1 |
- | // inicializace prvků pole | + | * Vypsat N-krát znak * (N je celé číslo ze vstupu) |
- | for (int i = 0; i < 42; i++) | + | |
- | { | + | |
- | | + | |
- | | + | |
- | printf(", "); | + | |
- | } | + | |
- | putchar(' | + | |
- | </ | + |