ينفذ بيان تبديل TypeScript عبارة واحدة من شروط متعددة. يقوم بتقييم التعبير بناءً على قيمته التي يمكن أن تكون منطقية، أو رقمية، أو بايتة، أو قصيرة، أو int، أو طويلة، أو نوع التعداد، أو السلسلة، وما إلى ذلك. تحتوي عبارة التبديل على كتلة واحدة من التعليمات البرمجية المقابلة لكل قيمة. عند العثور على التطابق، سيتم تنفيذ الكتلة المقابلة. تعمل عبارة التبديل مثل عبارة سلم if-else-if.
يجب تذكر النقاط التالية في بيان التبديل:
- يمكن أن يكون هناك عدد N من الحالات داخل بيان التبديل.
- يجب أن تكون قيم الحالة فريدة.
- يجب أن تكون قيم الحالة ثابتة.
- يحتوي كل بيان حالة على بيان فاصل في نهاية الكود. بيان الاستراحة اختياري.
- يحتوي بيان التبديل على كتلة افتراضية تتم كتابتها في النهاية. العبارة الافتراضية اختيارية.
بناء الجملة
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 }
يحتوي بيان التبديل على الأشياء التالية. يمكن أن يكون هناك أي عدد من الحالات داخل بيان التبديل.
قضية: يجب أن يتبع الحالة ثابت واحد فقط ثم فاصلة منقوطة. لا يمكنه قبول متغير أو تعبير آخر.
استراحة: يجب كتابة الفاصل في نهاية الكتلة ليخرج من بيان التبديل بعد تنفيذ كتلة الحالة. إذا لم نكتب فاصل، فسيستمر التنفيذ بالقيمة المطابقة لكتلة الحالة اللاحقة.
تقصير: يجب كتابة الكتلة الافتراضية في نهاية بيان التبديل. يتم تنفيذه عندما لا تكون هناك أي حالة سيتم مطابقتها.
مثال
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 غير مكتملة. وهذا يعني أنه في حالة عدم وجود عبارة Break، فسيتم تنفيذ جميع العبارات بعد حالة المطابقة الأولى.
مثال
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>