ccpp:vetvenicase

Toto je starší verze dokumentu!


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.

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;
}
  • Čá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í).
  1. vyhodnocení selektoru
    • * porovnání hodnoty selektoru s hodnotou1
      1. 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
      2. selektor se nerovná hodnotě1
        • * porovnání hodnoty selektoru s hodnotou2
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;
}
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);
enum tyden { pondeli, utery, streda, ctvrtek, patek, sobota, nedele };
tyden dnes = streda;
switch (dnes) //selektor větvení
{
   case pondeli:
   case patek:
   case utery:printf("13 - 18");break;
   case streda:printf("12 - 20");break;
   case ctvrtek:printf("8 - 12");break;        
   case sobota:
   case nedele:printf("zavreno");break;
}
  • ccpp/vetvenicase.1570714337.txt.gz
  • Poslední úprava: 2019/10/10 15:32
  • autor: durdilova