„TypeScript“ jungiklio sakinys vykdo vieną sakinį iš kelių sąlygų. Ji įvertina išraišką pagal jos reikšmę, kuri gali būti Būlio reikšmė, skaičius, baitas, trumpas, int, ilgas, enum tipas, eilutė ir kt. Komutatoriaus sakinyje yra vienas kodo blokas, atitinkantis kiekvieną reikšmę. Kai bus rastas atitikmuo, bus vykdomas atitinkamas blokas. Komutatoriaus teiginys veikia kaip if-else-if kopėčių sakinys.
Perjungimo sakinyje reikia atsiminti šiuos dalykus:
- Komutatoriaus sakinyje gali būti N atvejų.
- Atvejų reikšmės turi būti unikalios.
- Atvejų reikšmės turi būti pastovios.
- Kiekvieno atvejo sakinio kodo pabaigoje yra lūžio sakinys. Pertraukos teiginys yra neprivalomas.
- Komutatoriaus sakinys turi numatytąjį bloką, kuris rašomas pabaigoje. Numatytasis teiginys yra neprivalomas.
Sintaksė
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 }
Perjungimo teiginyje yra šie dalykai. Komutatoriaus sakinyje gali būti bet koks atvejų skaičius.
Atvejis: Po didžiosios raidės turėtų būti tik viena konstanta, o tada kabliataškis. Jis negali priimti kito kintamojo ar išraiškos.
Pertrauka: Pertrauka turėtų būti įrašyta bloko pabaigoje, kad ji išeitų iš jungiklio teiginio, įvykdžius didžiųjų atvejų bloką. Jei nerašome pertraukos, vykdymas tęsiamas su atitinkama reikšme į kitą atvejo bloką.
Numatytas: Numatytasis blokas turėtų būti parašytas jungiklio sakinio pabaigoje. Jis vykdomas, kai nebus suderintų atvejų.
Pavyzdys
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; } }
Išvestis:
Perjungti dėklą su styga
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>
Išvestis:
„TypeScript“ perjungimo pareiškimas yra neveiksmingas.
„TypeScript“ jungiklio teiginys yra neveiksmingas. Tai reiškia, kad jei lūžio sakinio nėra, jis vykdo visus sakinius po pirmos atitikties atvejo.
Pavyzdys
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'); }
Išvestis:
70>