Инструкцията за превключване на TypeScript изпълнява една инструкция от множество условия. Той оценява израз въз основа на неговата стойност, която може да бъде булево, число, байт, кратко, int, дълго, тип enum, низ и т.н. Операторът switch има един блок код, съответстващ на всяка стойност. Когато съвпадението бъде намерено, съответният блок ще бъде изпълнен. Операторът switch работи като оператора if-else-if ladder.
Следните точки трябва да се запомнят в изявление за превключване:
- Може да има N на брой случаи в оператор switch.
- Регистърът трябва да е уникален.
- Стойностите на регистрите трябва да са постоянни.
- Всеки оператор case има оператор break в края на кода. Инструкцията за прекъсване не е задължителна.
- Изявлението switch има блок по подразбиране, който е написан в края. Изявлението по подразбиране не е задължително.
Синтаксис
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 }
Инструкцията switch съдържа следните неща. Може да има произволен брой случаи в оператор switch.
случай: Регистрът трябва да бъде последван само от една константа и след това точка и запетая. Не може да приеме друга променлива или израз.
прекъсване: Прекъсването трябва да бъде написано в края на блока, за да излезе от командата switch след изпълнение на блок case. Ако не напишем break, изпълнението продължава със съответстващата стойност на следващия case блок.
По подразбиране: Блокът по подразбиране трябва да бъде написан в края на командата switch. Той се изпълнява, когато няма съвпадение на регистър.
Пример
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; } }
Изход:
Смяна на регистър с низ
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>
Изход:
Изявлението за превключване на TypeScript е преходно.
Инструкцията за превключване на TypeScript е преходна. Това означава, че ако операторът за прекъсване не присъства, тогава той изпълнява всички оператори след първия случай на съвпадение.
Пример
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'); }
Изход:
70>