přepínač…případ v C (Příkaz přepínače v C) s příklady
Co je příkaz Switch v jazyce C?
Přepnout příkaz v C testuje hodnotu proměnné a porovnává ji s více případy. Jakmile je nalezena shoda případu, provede se blok příkazů souvisejících s tímto konkrétním případem.
Každý případ v bloku přepínače má jiné jméno/číslo, které je označováno jako identifikátor. Hodnota zadaná uživatelem se porovnává se všemi případy uvnitř bloku přepínačů, dokud není nalezena shoda.
Pokud NENÍ nalezena shoda velkých a malých písmen, provede se výchozí příkaz a ovládací prvek opustí blok přepínače.
Syntaxe Switch Case
Obecná syntaxe toho, jak je přepínač implementován v programu 'C', je následující:
switch( expression ) { case value-1: Block-1; Break; case value-2: Block-2; Break; case value-n: Block-n; Break; default: Block-1; Break; } Statement-x;
- Výraz může být celočíselný výraz nebo znakový výraz.
- Hodnota-1, 2, n jsou popisky případů, které se používají k individuální identifikaci každého případu. Pamatujte, že popisky případů by neměly být stejné, protože to může způsobit problém při spouštění programu. Předpokládejme, že máme dva případy se stejným štítkem jako '1'. Potom při provádění programu bude proveden případ, který se objeví jako první, i když chcete, aby program provedl druhý případ. To vytváří problémy v programu a neposkytuje požadovaný výstup.
- Popisky případů vždy končí dvojtečkou ( : ). Každý z těchto případů je spojen s blokem.
- Blok není nic jiného než několik příkazů, které jsou seskupeny pro konkrétní případ.
- Kdykoli je přepínač spuštěn, je hodnota testovacího výrazu porovnána se všemi případy, které jsme definovali uvnitř přepínače. Předpokládejme, že testovací výraz obsahuje hodnotu 4. Tato hodnota se porovnává se všemi případy, dokud se v programu nenajde případ, jehož označení čtyři. Jakmile je případ nalezen, je proveden blok příkazů souvisejících s tímto konkrétním případem a kontrola opustí přepínač.
- Klíčové slovo break v každém případě označuje konec konkrétního případu. Pokud neuvedeme přerušení v každém případě, pak i když je konkrétní případ proveden, přepínač v C bude pokračovat ve vykonávání všech případů, dokud není dosaženo konce. To by se nemělo stávat; proto musíme vždy v každém případě zadat klíčové slovo break. Break po provedení případ ukončí a ovládací prvek vypadne ze spínače.
- Výchozí případ je volitelný. Kdykoli se hodnota testovacího výrazu neshoduje s žádným z případů uvnitř přepínače, provede se výchozí nastavení. V opačném případě není nutné do přepínače zapisovat default.
- Jakmile je přepínač proveden, ovládací prvek přejde na příkaz-x a provádění programu bude pokračovat.
Vývojový diagram příkazu přepínače
Následující diagram ukazuje, jak se vybírá pouzdro v pouzdru přepínače:
Příklad pouzdra přepínače v C
Následující program ilustruje použití přepínače:
#include <stdio.h> int main() { int num = 8; switch (num) { case 7: printf("Value is 7"); break; case 8: printf("Value is 8"); break; case 9: printf("Value is 9"); break; default: printf("Out of range"); break; } return 0; }
Výstup:
Value is 8
- V daném programu jsme vysvětlili inicializovaný a proměnlivý číslo s hodnotou 8.
- Konstrukt přepínače se používá k porovnání hodnoty uložené v proměnné num a provedení bloku příkazů spojených s odpovídajícím případem.
- V tomto programu, protože hodnota uložená v proměnné num je osm, přepínač provede případ, jehož case-label je 8. Po provedení případu ovládací prvek vypadne z přepínače a program bude ukončen s úspěšným výsledkem tisk hodnoty na výstupní obrazovce.
Zkuste změnit hodnotu proměnné num a všimněte si změny na výstupu.
Uvažujeme například následující program, který je výchozí:
#include <stdio.h> int main() { int language = 10; switch (language) { case 1: printf("C#\n"); break; case 2: printf("C\n"); break; case 3: printf("C++\n"); break; default: printf("Other programming language\n");}}
Výstup:
Other programming language
Při práci s pouzdrem přepínače v jazyce C seskupujete více případů s jedinečnými štítky. V každém případě musíte zavést příkaz break, aby se větvil na konci příkazu switch.
Volitelný výchozí případ se spustí, když nejsou provedeny žádné jiné shody.
Uvažujeme následující příkaz switch:
#include <stdio.h> int main() { int number=5; switch (number) { case 1: case 2: case 3: printf("One, Two, or Three.\n"); break; case 4: case 5: case 6: printf("Four, Five, or Six.\n"); break; default: printf("Greater than Six.\n");}}
Výstup:
Four, Five, or Six.
Vnořený přepínač v C
In C, můžeme mít vnitřní spínač zapuštěný do vnějšího spínače. Také případové konstanty vnitřního a vnějšího přepínače mohou mít společné hodnoty a bez jakýchkoli konfliktů.
Uvažujeme následující program, u kterého uživatel zadá své vlastní ID, pokud je ID platné, požádá ho o zadání hesla, pokud je heslo správné, program vypíše jméno uživatele, jinak program vypíše Nesprávné Heslo a pokud ID neexistuje, program vypíše Nesprávné ID
#include <stdio.h> int main() { int ID = 500; int password = 000; printf("Plese Enter Your ID:\n "); scanf("%d", & ID); switch (ID) { case 500: printf("Enter your password:\n "); scanf("%d", & password); switch (password) { case 000: printf("Welcome Dear Programmer\n"); break; default: printf("incorrect password"); break; } break; default: printf("incorrect ID"); break; } }
Výstup:
Plese Enter Your ID: 500 Enter your password: 000 Welcome Dear Programmer
- V daném programu jsme vysvětlili inicializované dvě proměnné: ID a heslo
- Vnější konstrukce přepínače se používá k porovnání hodnoty zadané do proměnné ID. Provede blok příkazů spojený s odpovídajícím případem (když ID==500).
- Pokud je blokový příkaz proveden s odpovídajícím případem, použije se vnitřní přepínač k porovnání hodnot zadaných v proměnné heslo a vykonání příkazů spojených s odpovídajícím případem (když heslo==000).
- Jinak případ přepínače spustí výchozí případ a vytiskne příslušný text týkající se osnovy programu.
Proč potřebujeme pouzdro Switch?
Existuje jeden potenciální problém s if- else prohlášení což je složitost programu se zvyšuje, kdykoli se zvyšuje počet alternativních cest. Pokud v programu použijete více konstrukcí if-else, program může být obtížně čitelný a srozumitelný. Někdy to může dokonce zmást vývojáře, který program sám napsal.
Řešením tohoto problému je příkaz switch.
Pravidla pro příkaz switch
- Výraz se musí vždy provést na výsledek.
- Popisky případů musí být konstantní a jedinečné.
- Popisky případů musí končit dvojtečkou ( : ).
- V každém případě musí být přítomno klíčové slovo break.
- Může existovat pouze jeden výchozí štítek.
- Můžeme vnořit více příkazů switch.
Shrnutí
- Přepínač je konstrukce pro rozhodování v 'C. "
- Přepínač se používá v programu, kde se jedná o více rozhodnutí.
- Přepínač musí obsahovat spustitelný testovací výraz.
- Každý případ musí obsahovat klíčové slovo break.
- Označení případu musí být konstantní a jedinečné.
- Výchozí hodnota je volitelná.
- Více příkazů přepínače může být vnořeno do sebe.