Hledejte v chronologicky řazené databázi studijních materiálů (starší / novější příspěvky).

9. Příkazy cyklu (smyčky), příkaz while, příkaz do, příkaz for.

cyklus while:
Příkaz while realizuje v C++ cykly s podmínkou na začátku.
while (výraz) příkaz;
While funguje tak, že se nejprve vyhodnotí výraz a pak, je-li vyhodnocen jako nenulový(true), provede se příkaz. Po jeho provedení se znovu vyhodnotí výraz a případně se znovu provede příkaz. Cyklus končí v okamžiku, kdy je podmínka vyhodnocena jako 0 (false). Příkaz se pak již neprovede a program pokračuje dalším příkazem po while.

int a=0;
while (a<10) a++; //desetkrát se provede inkrementace a.
cyklus do – while:
do příkaz1; while (výraz);

Podobný cyklu while je příkaz do – while, který ale vyhodnocuje pokračovací podmínku výraz až po provedení těla cyklu. To znamená, že minimálně jednou se tělo cyklu provede vždy.
Nejprve se provede příkaz a teprve po jeho provedení je vyhodnocen výraz podmínky. Pokud je nenulový(true), znovu se vykoná příkaz. To pokračuje až do doby, kdy je podmínka vyhodnocena jako nulová(false).

Příklad:
a=0;
do
{ printf(“ahoj\n”);
}while (a++ != 10);

cyklus for:
for (inicializační_výraz; terminální_výraz; iterační_výraz) příkaz;
příkaz for je prováděn v těchto krocích:
1. Je vyhodnocen inicializační_výraz. Ten je primárně určen pro inicializování iterační proměnné.

2. Je vyhodnocen terminální_výraz. Pokud je vyhodnocen jako 0, je vykonávání cyklu for ukončeno a pokračuje se prvním příkazem uvedeným po cyklu. Pokud je ale vyhodnocen jako nenulový, pokračuje se krokem 3.

3. Je proveden příkaz.

4. Vyhodnotí se iterační_výraz. Ten obvykle slouží ke změně(inkrementaci, dekrementaci, přičtení hodnoty, atd.) iterační proměnné.

5. Pokračuje se znovu od bodu 2.

Příklad:
int i;
for(i=0; i<5; i++) printf("%d",i);
// 5-krát se provede příkaz printf, který tiskne hodnotu proměnné i.

Jako inicializační a iterační výrazy mohou být použity výrazy jakéhokoliv typu. Terminální výraz by však měl být číselný. Je také možné vynechat libovolný z těchto výrazů. Vynecháním terminálního výrazu docílíme nekonečného cyklu, protože chybějící terminální výraz bude nahrazen nějakou nenulovou konstantou a ta nemůže být nikdy vyhodnocena jako 0.

Žádné komentáře:

Okomentovat