تبديل حالة البناء
يتم استخدام إنشاء المفتاح لمقارنة قيمة المساواة مع الخيارات المختلفة.
في هذه الحالة ، يتم تضمين المساواة بمعنى المساواة الصارمة للمشغل `` === '' ، ولا يمكن مقارنتها بتعبير عادي أو بطريقة أخرى. بمعنى ، يجب أن تكون القيم من نفس النوع حتى يتم الاحتفاظ بالمساواة.
إذا تطابق الشرط ، فإن كتلة التعليمات البرمجية المرتبطة المقابلة case
يتم تنفيذ. إذا لم يتطابق أي من الشروط ، فسيكون الرمز المحدد في ملف default
كتلة ، إن وجدت ، يتم تنفيذها. للخروج من البناء ، استخدمbreak
أمر. إذا لم تحدده ، فسيتم تنفيذ كتلة التعليمات البرمجية تلقائيًا في التالي case
, إلخ. لذلك نستخدمها break
في نصوصنا ، حتى لا نشغل المترجم الفوريcases
, وبالتالي تقليل أداء البرنامج النصي.
بناء الجملة
أswitch
يحتوي البناء على واحد أو أكثر case
كتل واختياري default
منع.
تبدو هكذا:
switch (n) {
case 1:
// code block 1;
break
case 2:
// code block 2;
break
// .......
// other case options
// .......
default:
// code block if none of the conditions match;
}
n
-هذا هوboolean شرط.
أمثلة على
لنفكر في أبسط مثال:
هناswitch
بيان سوف يقارن بالتسلسل a
مع كل الخيارات منcase
.
أولا 3
, ثم - حيث لا يوجد تطابق -4
. تم العثور على تطابق ، سيتم تنفيذ هذا الخيار ، من السطرstr = 'To point!'
وبعد ذلك ، إلى أقربbreak
, مما يقطع التنفيذ.
تأمل هذا المثال:
هنا switch
بيان سوف يقارن بالتسلسل a
مع كل الخيارات من case
. لكن هذه ليست مقارنة بين الأرقام ، ولكن بين الأوتار. يمكن القيام بذلك مع أي نوع بيانات ، طالما تتم مقارنة أنواع البيانات نفسها.
استبدال "if"
أيضًا ، يتم استخدام "Switch" لاستبدال "if" المتعددة.
على سبيل المثال ، يمكنك استبدال هذا الرمز:
على هذا :
ستكون النتيجة هي نفسها ، لكن الكود سيصبح أكثر قابلية للقراءة وأسهل في العمل به.
مشاكل؟
اكتب ل Discord محادثة.
أسئلة:
هل من الممكن استخدامswitch
لمقارنة شيء مع التعبيرات العادية؟
- Yes
- No
ما عامل المقارنة يفعل switch
استعمال؟
=
===
==
الكلمة الأساسية التي توقف عملية المقارنة فيها switch
?
break
stop
default
لفهم مقدار ما تعلمته في هذا الدرس ، قم بإجراء الاختبار فيmobile application من مدرستنا في هذا الموضوع.
الروابط
المساهمون ✨
الشكر يعود إلى هؤلاء الأشخاص الرائعين(emoji key):
Philipp Dvinyaninov | Dmitriy Vasilev 💵 | Resoner2005 🐛 🎨 🖋 | Navernoss 🖋 🐛 🎨 |