C – switch Mgr. Lenka Švancarová
switch syntaxe switch (výraz) { case hodnota_1: příkaz(y)_ve_větvi_1; case hodnota_2: příkaz(y)_ve_větvi_2; … default: příkaz(y)_ve_větvi_default; } Příkazy v jednotlivých větvích nemusíme (ale můžeme) uzavřít do {} a to i v případě více příkazů.
switch sémantika Příkaz pro vícenásobné větvení dalšího řešení, kdy existují více než dvě možnosti pokračování. Testuje na rovnost hodnotu co vrátil výraz s hodnota_1. Pokud se rovnají budou se vykonávat příkazy od větve_1 včetně, jinak se bude testovat na rovnost hodnota_2 atd. Není-li větev přepínače ukončena pomocí příkazu break, program neopouští switch.
switch sémantika Výraz musí vracet hodnotu typu int. Jako nabízenou hodnotu je nutno psát vždy jednu hodnotu typu int (např. celé číslo, písmeno), případně klíčové slovo default – větev za default se provádí pro jakoukoliv hodnotu výrazu. Část default není povinná.
Vícenásobné větvení v C a v Pascalu V C program po provedení jedné větve pokračuje prováděním dalších větví, dokud nedojde na konec nebo jej neukončíme příkazem break. V TP program po provedení jedné větve skončí s case jako celkem – dále nekontroluje další hodnoty a případně neprovádí další větve.
Příkaz vícenásobného větvení – switch #include int main() { float a; char co; printf("Zadejte stranu ctverce: "); scanf("%f",&a); printf("S - obsah, o - obvod: "); scanf(" %c",&co); switch (co) { case ’S’ : printf("S = %f \n",a*a); break; case ’o’ : printf("o = %f \n",4*a); break; } return(0); }
Příkaz vícenásobného větvení – switch #include int main() { int z; printf("Zadejte znamku: "); scanf("%d",&z); switch (z) { case 1: case 2: case 3: case 4: printf("Prospel(a).\n"); printf(" \n"); break; case 5: printf("Neprospel(a).\n"); break; default: printf("Toto neni znamka.\n"); break; } return(0); }
C – switch Uživatel zadá, zda chce u kruhu vypočítat obsah či obvod a pak jeho celočíselný poloměr. Program spočte požadované. Uživatel zadá reálné číslo, jeden ze znaků +, –, * nebo / a poté druhé reálné číslo. Program vypíše výsledek. Napiš program na převody délkových jednotek.