Příkaz Switch TypeScript provede jeden příkaz z více podmínek. Vyhodnocuje výraz na základě jeho hodnoty, která může být logická hodnota, číslo, byte, short, int, long, typ enum, řetězec atd. Příkaz switch má jeden blok kódu odpovídající každé hodnotě. Když je nalezena shoda, provede se odpovídající blok. Příkaz switch funguje jako příkaz if-else-if ladder.
V příkazu switch je třeba mít na paměti následující body:
- Uvnitř příkazu switch může být N počet případů.
- Hodnoty případu musí být jedinečné.
- Hodnoty případu musí být konstantní.
- Každý příkaz case má na konci kódu příkaz break. Příkaz break je volitelný.
- Příkaz switch má výchozí blok, který je zapsán na konci. Výchozí příkaz je volitelný.
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 }
Příkaz switch obsahuje následující věci. Uvnitř příkazu switch může být libovolný počet případů.
Pouzdro: Za případem by měla následovat pouze jedna konstanta a poté středník. Nemůže přijmout jinou proměnnou nebo výraz.
Přestávka: Přerušení by mělo být zapsáno na konec bloku, aby vyšlo z příkazu switch po provedení bloku case. Pokud nezapíšeme break, vykonávání pokračuje s odpovídající hodnotou do následujícího bloku case.
Výchozí: Výchozí blok by měl být zapsán na konec příkazu switch. Provede se, když neexistují žádná velká a malá písmena.
Pří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ýstup:
Spínací pouzdro se šňů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ýstup:
Příkaz TypeScript Switch je falešný.
Příkaz přepínače TypeScript je spouštěcí. To znamená, že pokud příkaz break není přítomen, provede všechny příkazy po prvním případu shody.
Pří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ýstup:
70>