6.0 Příkazy pro ukončování cyklů :
    Zde je několik příkazů, které byste mohli (a budete)
    při programování cyklů potřebovat :

6.1 Cykly s nastaveným opakováním
    Zde je příkaz pro cykly s nastaveným opakováním
    a jeho použití :

    for(prom = start; podminka; inkrementace_prom){
        vykonávané_příkazy;
    }

    U takového cyklu lze použít příkazy break - vyskočení,
    a continue - skočení na začátek, zopakování 
    inkrementace_prom, a nyní příklad :


int i;

for(i = 0; i <= 3; i ++){
    printf("%d \n", i);
}
Bude mít výstup : 0 1 2 3 Ale tohle :

int i;

for(i = 0; i <= 3; ++ i){
    printf("%d \n", i);
}
Bude mít výstup : 1 2 3 V cyklu nemusí být jenom "++" a může se použít tzv. operátor čárky, umožňující dělat víc příkazů v jednom "chlívečku" :

int i, m;

for(i = 0, m = 1; i <= 10; i ++, m *= 2)
    printf("Dva na %d. = %d\n", i, m);
Tohle vytiskne tabulku mocnin dvou (můžete si v excelu zkusit že nekecám) : Dva na 0. = 1 Dva na 1. = 2 Dva na 2. = 4 Dva na 3. = 8 Dva na 4. = 16 Dva na 5. = 32 Dva na 6. = 64 Dva na 7. = 128 Dva na 8. = 256 Dva na 9. = 512 Dva na 10. = 1024 6.2 Nekonečné cykly Zde je uvedeno použití několika příkazů pro "nekonečné" cykly ... (nekonečné v mezích ukončení programu :-)) Nekonečný cyklus se dá vytvořit i pomocí for :

for(;;) {
    vykonavane_prikazy;
    // taky by tam mělo být něco jako
    // break pro vyskočení z cyklu
}
6.2.0 Příkaz while() Příkaz while má jednu podmínku, která pokud je splněná, cyklus probíhá znova a znova. Příkazy break continue na něj mají obvyklé účinky. Častá verze je nekonečný cyklus (v závorce je "1") Základní syntaxe :

while(podm_bezi){
    prikazy; // Příkazy se vykonávají dokud bude podm_bezi = 1
}
Příklad :

char c;

while(c != 'a'){
    printf("\nChces vyskocit z cyklu ?");
    c = getchar(); 
}
printf("\nSbohem ...);
Bude mít výstup : Chces vyskocit z cyklu ? n Chces vyskocit z cyklu ? n Chces vyskocit z cyklu ? a Sbohem ... 6.2.1 Příkaz do() Příkaz do je cyklus s testováním podmínky na konci, lze zase vyskočit příkazem break, nebo příkazem continue (přes podmínku!) skočí na začátek cyklu :

do {
    vykonavane_prikazy;
} while(podm_bezi);
Příklad :

int i;
i = 0;

do {
    if(i % 2 == 0) { // sudá čísla (po dělení dvěma není zbytek ;-))
        printf("%d je sude \n", i);
        i ++;
        continue;
    }
    printf("%d je liche \n", i);
	i ++;
} while(i <= 5);
Bude mít výstup : 0 je sude 1 je liche 2 je sude 3 je liche 4 je sude 5 je liche Že se skáče přes podmínku lze lehce ukázat drobnou změnou - přesuneme i ++ do podmínky (pak to bude while(i ++ <= 5);) a výstup se změní na : 0 je sude 2 je sude 4 je sude 6 je sude Cykly by měly být každému naprosto jasné, protože se používají všude a občas docela ďábelsky. Třeba tohle :

int i, j;

i = 8;
j = 0;
while(j += i --)
    printf("%d, %d \n", i, j);
// vytiskne prapodivnou posloupnost čísel, skončí
// až j bude nula (to už se nevytiskne)
Tohle sice nedělá nic moc srozumitelnýho, ale podobnou smyčkou se dají kopírovat pole, ukončená nulou. Jak si později řekneme, jsou to řetězce. Cvičení : 1) - Napište program, který vytiskne násobky tří od tří do dvaceti. Nepopužívejte % (dělení modulo) 2) - Napište program, který vytiskne ascii tabulku (znaky od 32 do 128) 3) - Napište program, který čte čísla, dokud nezadáte 999 a potom vytiskne jejich průměr. 4) - Napište program, který vytiskne posloupnost čísel 1 5 13 29 od 1 do 100 (vždycky další číslo je (předchozí * 2) + 3) 5) - Napište program, který vypíše tabulku prvočísel od 1 do 100. Použijte % (dělení modulo) 6) - Napište program, vytisknuvší tabulku mocnin zadaného čísla od 0 do 10 Zatím programujte v C-čku, nejezte maso a bůh k vám bude milostiv ! -tHE SWINe-
Zpátky