Naredba TypeScript switch izvršava jednu naredbu iz više uvjeta. Procjenjuje izraz na temelju njegove vrijednosti koja može biti Boolean, broj, bajt, kratko, int, dugo, enum tip, niz itd. Izjava switch ima jedan blok koda koji odgovara svakoj vrijednosti. Kada se pronađe podudaranje, izvršit će se odgovarajući blok. Naredba switch funkcionira kao naredba ljestvice if-else-if.
Sljedeće točke moraju se zapamtiti u izjavi o prebacivanju:
- Unutar naredbe switch može biti N slučajeva.
- Vrijednosti velikih i malih slova moraju biti jedinstvene.
- Vrijednosti velikih i malih slova moraju biti konstantne.
- Svaka naredba case ima naredbu break na kraju koda. Naredba break nije obavezna.
- Naredba switch ima zadani blok koji je napisan na kraju. Zadana izjava nije obavezna.
Sintaksa
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 }
Izjava switch sadrži sljedeće stvari. Unutar naredbe switch može postojati bilo koji broj slučajeva.
Slučaj: Nakon velikih i malih slova treba slijediti samo jedna konstanta, a zatim točka-zarez. Ne može prihvatiti drugu varijablu ili izraz.
Pauza: Break treba biti napisan na kraju bloka kako bi izašao iz naredbe switch nakon izvođenja bloka case. Ako ne napišemo break, izvođenje se nastavlja s odgovarajućom vrijednošću za sljedeći blok case.
Zadano: Zadani blok treba biti napisan na kraju naredbe switch. Izvršava se kada se ne podudaraju velika i mala slova.
Primjer
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; } }
Izlaz:
Zamijeni velika i mala slova sa String
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>
Izlaz:
Izjava TypeScript Switch je prolazna.
Izjava TypeScript switch je prolazna. To znači da ako naredba break nije prisutna, izvršava sve naredbe nakon prvog podudaranja.
Primjer
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'); }
Izlaz:
70>