ccpp:vetvenicase

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
ccpp:vetvenicase [2019/10/10 15:21] durdilovaccpp:vetvenicase [2021/11/22 12:50] (aktuální) bures
Řádek 3: Řádek 3:
 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. 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 úplného rozhodovacího příkazu =====+===== Syntaxe příkazu switch =====
 <code c> <code c>
-switch (selektor) 
-{ 
-  case hodnota1 : prikaz1;break; 
-  case hodnota2 : prikaz2;break; 
-  ... 
-  case hodnotan : prikazn;break; 
-} 
- 
 switch (selektor) switch (selektor)
 { {
Řádek 24: Řádek 16:
  
 ==== Poznámky ==== ==== Poznámky ====
-  * Středník ukončuje až celý příkaz if, za hlavičku se středník nepíše. +  * selektor větvení je proměnná nebo výraz ordinálního datového typu (v některých jazycí může být typu string) 
-  * Pokud je kladné nebo záporné tvi více příkazů než jedenmusí se íkazy uzavřít do složených závorek.  +  * jednotlivé větve pro hodnoty výrazu jsou definovány pomocí klíčového slova **case**
-  * ípaděže potřebujeme definovat odlišná chování pro více hodnot než 2žeme použít vnořený rozhodovací příkaz.+  * hodnoty jednotlivých tvích jsou stejného datového typu jako je selektor větvení 
 +  * jedna hodnota nemůže být ve dvou větvích 
 +  * část default je nepovinná a je provedena pouzepokud selektor větvení nenabývá žádné z hodnot větví case 
 +  * tělo íkazu switch začíná a končí složenými závarkami 
 +  * příkaz **break** definitivně ukončí provádění příkazu switch 
 +  * příkaz goto umožňuje skok na jiný blok case uvnitř příkazu switch 
 +  * pokud chci provést určitý příkaz pro více hodnot, využiju tzvpropadávání (nenapíši **break**)
  
 ===== Průběh rozhodovacího příkazu ===== ===== Průběh rozhodovacího příkazu =====
-  - **vyhodnocení podmínky** +  - **vyhodnocení selektoru** 
-      - podmínka platí +      ** porovnání hodnoty selektoru s hodnotou1 
-        - **vykonání první skupiny příkazů** +        - selektor se rovná hodnotě1 
-      - podmínka neplatí +          **vykonání druhé skupiny příkazů za else** 
-        - **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 
 +          *...
  
-==== Výpis textu, zda celé číslo x je liché nebo sudé ====+ 
 +==== Selektor větvení je celočíselný ====
 <code c> <code c>
-if  (x % 2 == 0+int znamka = 2;  
-  printf("%d je sude\n", cislo); +switch (znamka) //selektor větvení 
-else +
-  printf("%je liche\n", cislo);   +    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("Chybny vstup!\n"); 
 +      break; 
 +
 +</code> 
 + 
 +==== Selektor větvení je znak ==== 
 +<code c> 
 +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("Neznama cislice\n"); 
 +      arabsky = 0; 
 +      break; 
 +} 
 +printf("Rimska cislice %je %i\n", rimska, arabsky); 
 +</code> 
 + 
 +==== Selektor větvení je typu výčet ==== 
 +<code c> 
 +enum tyden { pondeli, utery, streda, ctvrtek, patek, sobota, nedele }; 
 +enum 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; 
 +}
 </code> </code>
  • ccpp/vetvenicase.1570713687.txt.gz
  • Poslední úprava: 2019/10/10 15:21
  • autor: durdilova