Príkaz prepínača TypeScript vykoná jeden príkaz z viacerých podmienok. Vyhodnocuje výraz na základe jeho hodnoty, ktorá môže byť boolovská hodnota, číslo, bajt, krátky, int, dlhý, typ enum, reťazec atď. Príkaz switch má jeden blok kódu zodpovedajúci každej hodnote. Keď sa nájde zhoda, vykoná sa príslušný blok. Príkaz switch funguje ako príkaz if-else-if ladder.
Pri príkaze switch je potrebné pamätať na nasledujúce body:
- Vo vnútri príkazu switch môže byť N počet prípadov.
- Hodnoty prípadu musia byť jedinečné.
- Hodnoty prípadu musia byť konštantné.
- Každý príkaz case má na konci kódu príkaz break. Príkaz break je voliteľný.
- Príkaz switch má predvolený blok, ktorý je zapísaný na konci. Predvolený príkaz je voliteľný.
Syntax
switch(expression){ case expression1: //code to be executed; break; //optional case expression2: //code to be executed; break; //optional ........ default: //when no case is matched, this block will be executed; break; //optional }
Príkaz switch obsahuje nasledujúce veci. Vo vnútri príkazu switch môže byť ľubovoľný počet prípadov.
prípad: Za malými a veľkými písmenami by mala nasledovať iba jedna konštanta a potom bodkočiarka. Nemôže prijať inú premennú alebo výraz.
Prestávka: Prestávka by mala byť napísaná na konci bloku, aby vyšla z príkazu switch po vykonaní bloku case. Ak nezapíšeme break, vykonávanie pokračuje so zodpovedajúcou hodnotou do nasledujúceho bloku case.
Predvolená hodnota: Predvolený blok by mal byť napísaný na konci príkazu switch. Spustí sa, keď sa nevyskytnú žiadne prípady, keď sa zhodujú.
Príklad
let a = 3; let b = 2; switch (a+b){ case 1: { console.log('a+b is 1.'); break; } case 2: { console.log('a+b is 5.'); break; } case 3: { console.log('a+b is 6.'); break; } default: { console.log('a+b is 5.'); break; } }
Výkon:
Puzdro na vypínač so šnúrkou
let grade: string = 'A'; switch (grade) { case'A+': console.log('Marks >= 90'+' '+'Excellent'); break; case'A': console.log('Marks [ >= 80 and = 70 and = 60 and <70 ]'+' '+'average'); break; case'c': console.log('marks < 60'+' '+'below average'); default: console.log('invalid grade.'); } pre> <p>In this example, we have a string variable grade. The switch statement evaluates grade variable value and match with case clauses and then execute its associated statements.</p> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/typescript-tutorial/79/typescript-switch-statement-3.webp" alt="TypeScript Switch Statement"> <hr> <h2>Switch Case with Enum</h2> <p>In TypeScript, we can use the switch case with Enum in the following ways.</p> <h3>Example</h3> <pre> enum Direction { East, West, North, South }; var dir: Direction = Direction.North; function getDirection() { switch (dir) { case Direction.North: console.log('You are in North Direction'); break; case Direction.East: console.log('You are in East Direction'); break; case Direction.South: console.log('You are in South Direction'); break; case Direction.West: console.log('You are in West Direction'); break; } } getDirection(); </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/typescript-tutorial/79/typescript-switch-statement-4.webp" alt="TypeScript Switch Statement"> <hr> <h2>TypeScript Switch Statement is fall-through.</h2> <p>The TypeScript switch statement is fall-through. It means if a break statement is not present, then it executes all statements after the first match case.</p> <h3>Example</h3> <pre> let number = 20; switch(number) { //switch cases without break statements case 10: console.log('10'); case 20: console.log('20'); case 30: console.log('30'); default: console.log('Not in 10, 20 or 30'); } </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/typescript-tutorial/79/typescript-switch-statement-5.webp" alt="TypeScript Switch Statement"></70>
Výkon:
Príkaz prepínača TypeScript je prechodný.
Príkaz prepínača TypeScript je prechodný. To znamená, že ak príkaz break nie je prítomný, potom vykoná všetky príkazy po prvom prípade zhody.
Príklad
let number = 20; switch(number) { //switch cases without break statements case 10: console.log('10'); case 20: console.log('20'); case 30: console.log('30'); default: console.log('Not in 10, 20 or 30'); }
Výkon:
70>