Toto je starší verze dokumentu!
Větvení do více větví
Příkaz switch umožňuje větvit program na základě nějakého selektoru. Selektorje proměnná nebo výraz datového typu celé číslo, znak nebo výčet.
Syntaxe příkazu switch
switch (selektor) { case hodnota1 : prikaz1;break; case hodnota2 : prikaz2;break; ... case hodnotan : prikazn;break; } switch (selektor) { case hodnota1 : prikaz1;break; case hodnota2 : prikaz2;break; ... case hodnotan : prikazn;break; default: prikazD;break; }
Poznámky
- Část defaultje nepovinná.
- Příkaz break je příkaz skoku a v tomto případě bude program pokračovatza příkazem switch.
- Pokud příkaz break není uveden, program pokračuje dalšími příkazy v dalších větvích case (tzv. propadávání).
Průběh rozhodovacího příkazu
- vyhodnocení selektoru
- * porovnání hodnoty selektoru s hodnotou1
- selektor se rovná hodnotě1
- *vykonání druhé skupiny příkazů za else pokud je uvedeno break, příkaz končí jinak dojde k vykonávání dalších příkazů v dalších větvích
- selektor se nerovná hodnotě1
- * porovnání hodnoty selektoru s hodnotou2
- …
Selektor větvení je celočíselný
int znamka = 2; switch (znamka) //selektor větvení { case 1:printf("vyborny\n");break; case 2:printf("chvalitebny\n");break; case 3:printf("dobry\n");break; case 4:printf("dostatcny\n");break; case 5:printf("nedostatcny\n");break; default:printf("blbost\n");break; }
Selektor větvení je znak
char rimska = 'D'; int arabsky; switch (rimska) //selektor větvení { case 'I':arabsky = 1;break; case 'V':arabsky = 5;break; case 'X':arabsky = 10;break; case 'L':arabsky = 50;break; case 'C':arabsky = 100;break; case 'D':arabsky = 500;break; case 'M':arabsky = 1000;break; default:printf("neznam");arabsky = 0;break; } printf("Rimska cislice %c je %i\n", rimska, arabsky);