Týden 4
Blok příkazů
V jazyce C je možné sloučit do bloku příkazy, které následují v programu přímo po sobě. V praxi se bloky využijí za řídícími konstrukcemi jako jsou podmíněný příkaz nebo cykly.
Blok se v jazyce C zapíše pomocí složených závorek takto:
{ float base, exp; printf("Zadejte zaklad: "); scanf("%g", &base); printf("Zadejte exponent: "); scanf("%g", &exp); float result = pow(base, exp); printf("%.4f ^ %.2f = %.4f", base, exp, result); }
Podmíněný příkaz if - else
Pokud chceme některou část programu provést jen pokud je splněna nějaká podmínka, můžeme v jazyce C použít podmíněný příkaz if. Takto můžeme v programu provést jeden příkaz nebo blok příkazů. Navíc je možné provést příkazy, když podmínka splněna není, k tomu se užije klíčové slovo else.
Zápis podmínky může vypadat takto:
int num; /* Nacteni num ze vstupu */ if (num > 0) printf("Uzivatel zadal kladne cislo");
Se zápisem v bloku a s použitím větve else by vypadal stejný program takto:
int num; /* Nacteni num ze vstupu */ if (num > 0) { printf("Uzivatel zadal kladne cislo"); } else { printf("Potrebuji kladne cislo"); }
Cyklus while a do - while
V programech je často potřeba vykonávat některé příkazy opakovaně mnohokrát po sobě. Může to být například při výpočtu algoritmu, který probíhá ve stále se opakujících krocích - výpočet minima/maxima řady čísel nebo algoritmus pro výpočet největšího společného dělitele dvou čísel. Základní konstrukcí pro zápis cyklů v jazyce C je while příkaz.
Níže je uveden příklad užití cyklu k výpisu čísel od 0 do n, kde n < 5. Před provedením těla cyklu se vyhodnotí platnost podmínky ve while. Pokud podmínka platí, je tělo cyklu provedeno, v opačném případě je cyklus opuštěn a program pokračuje dalšími příkazy.
int count = 5; /* Nacteni count ze vstupu */ int i = 0; while (i < count) { printf("Hodnota i je %d", i); i++; }
Někdy může být výhodné tělo cyklu provést alespoň jednou a až poté vyhodnotit podmínku pro opakování cyklu. K takovému účelu se v C používá konstrukce do - while.
Takto je možné opakovaně načítat číslo, dokud nesplňuje danou podmínku:
int n; do { printf("Zadejte kladne cislo: "); scanf("%d", &n); } while (n <= 0);
Za závorkou, která uzavírá podmínku do - while se vždy píše středník.