تستخدم هذه الداله عندما يكون لدينا عده خيارات ونريد الخروج بخيار واحد منهم , ويتم اختيار واحد من هذه الخيارات عن طريق المتغير الموجود فى داله switch .
صيغتها..
switch (اسم المتغير) { case الاحتمال الاول : تنفذ هذه الاوامر - عند تطابق هذا الاحتمال مع قيمه المتغير break; case الاحتمال الثانى : تنفذ هذه الاوامر - عند تطابق هذا الاحتمال مع قيمه المتغير break; . . . case الاحتمال الاخير : تنفذ هذه الاوامر - عند تطابق هذا الاحتمال مع قيمه المتغير break; default : تنفذ هذه الاوامر - عندما لا يتطابق المتغير مع اى حاله }
ولفهم عمل هذه الداله اكثر إليكم هذا المثال..
عند تنفيذ هذه الاوامر يظهر الآتى ...
عند كتابه دوله الامارات فى النافذه سيظهر الآتى ..
وعند ادخال اسم دوله ليست ضمن الخيارات المتاحه سيظهر الآتى ..
شرح المثال السابق
فى البدايه تم تعريف متغير اسمه (country) وهذا المتغير تحدد قيمته من خلال ما يدخله المستخدم فى نافذه (prompt) ولنفرض ان المستخدم ادخل دوله (الامارات) .
هنا يأتى دور داله (switch) حيث ان القيمه التى ادخلها المستخدم وهى دوله الامارات تبدأ فى المقارنه مع كل (case) فى داله (switch) .
نلاحظ ان ال (case) الثالثه تطابق ما ادخله المستخدم , هنا يتم تنفيذ الاوامر اسفل هذه الحاله وهو هذا الامر
document.write ("عاطمتها دبى");
4. بعد تنفيذ هذا الامر يتم الخروج من هذه الداله وذلك عن طريق (break) , لاننا نريد ان نخرج بقيمه واحده من هذه الخيارات , فجرب أن لا تضع كلمه (break) واكتشف الفرق بنفسك .
5. فى حاله اننا ادخلنا دوله السعوديه , فإنها تبدأ بالمقارنه مع حالات الداله ولا تجد ما يطابقها ,هنا يأتى دور (default) حيث أنه يتم تنفيذ الاوامر بأسفل (default) إذا لم نجد أى مطابقه مع كل(case) , فيتم تنفيذ هذا الامر
document.write ("الدوله التى ادخلتها ليست ضمن القائمه");
حلقات التكرار
نعنى بها تكرار جمله معينه عده مرات فحلقه التكرار سوف تستمر ما دام الشرط متحقق , ويتم التحقق من الشرط فى بدايه الحلقه او فى نهايتها .
ما فائده استخدام حلقات التكرار؟
لنفرض انك تريد طباعه جمله معينه 10 مرات , ففى الحاله العاديه انك سوف تكتب أمر الطباعه 10 مرات , ولكن مع استخدام حلقه التكرار فلا يأخذ منك غير سطرين فى كتابه الكود .
أنواع حلقات التكرار
حلقه التكرار (for)
صيغتها
for ( مقدار الزیادة ; شرط الحلقة ; بدایة الحلقة) { تنفذ هذه الاوامر - عند تحقق الشرط }
فى هذه الحلقه يكون الشرط هو الذى يحدد طول الحلقه أى عدد مرات تكرار الحلقه , فما دام الشرط متحقق فإنه يدخل بداخل الداله وينفذ الاوامر التى بداخلها وعند عدم تحقق الشرط فلا ينفذ الاوامربداخل الداله .
مثال لتوضيح ما سبق
شرح المثال
فى البدايه تم تعريف متغيراسمه (i) وتم تحديد قيمه ابتدائيه له وهى (0) أى انه سوف يبدأ من (0) , وتم تعريف هذا المتغير بادخل الحلقه ولكن يمكننا ان نعرفه فى الخارج ووضعه داخل حلقه التكرار مباشره كالتالى..
var i=0; for (i ; i<=10 ; i++)
2. حددنا الشرط وهو (i<=10) أى اننا سوف ندخل إلى داخلالحلقه وننفذ ما بداخلها من أوامر إذا كانت (i) أقل من أو يساوى (10)
3. ثم حددنا مقدار زياده المتغير (i) حيث أنه سوف يزيد بمقدار (1) فى كل مره يدخل فيها الحلقه , ويمكننا كتابه مقدار الزياده كما فى السابق إذا كانت الزياده بمقدار (1) فقط فلا يجوز استخدام هذا الشكل اذا كانت الزياده مثلا بمقدار (2) ولكن يمكننا كتابه الشكل التالى فى كل حالات مقدار الزياده
i+=1 i+=5
نأتى الآن للتطبيق العملى للمثال أى ما يحدث بداخل البرنامج
نكتب الصيغه مره أخرى ونتبعها وهى
for ( var i = 0 ; i < = 10 ; i ++ )
نبدأ بقيمه (i) كما ذكرنا وهى (0) .
2. ننتقل إلى الخطوه التاليه التى تليها وهى الشرط (i<=10) وهنا يسأل هل (i)أقل من أو يساوى (10, فنجد أن الاجابه نعم.
3. ثم ننتقل للخطوه التى تليها وهى (++i) أي یعني ذلك بعد الدخول الى حلقة التكرار والرجوع الى(for) , زيد (i) بمقدار (1).
4. دخلنا الى الحلقة الان سوف یطبع قیمة ال (i) التى هى (0) ثم ينزل سطر وذلك من خلال <br> , ثم يعود إلى (for) ولكن بعد زياده قيمه (i) بمقدار (1) لتصبح قيمتها (1) .
5. الان سوف یتكرر ما فعلناه بالخطوات السابقة ولكن هذه المرة سوف تتغیر قیمة ال (i) الابتدائيه إلى(1) بدلا من (0) إلى أن تصل قيمه (i) إلى (11) وهنا سوف يحدث التالى
6. تصبح قيمه (i) الابتدائيه (11) وندخل على الشرط ونسأل هل قيمه (i=11) اقل من او تساوى (10) فنجد أن الاجابه لا إذا سوف يخرج من الحلقه ولا ينفذالجمله التى بداخلها.
مدونه مايندز وجدتها زاخره باالدروس الموجهه للمبتديئن فى المجال التقنى عامه والبرمجى, المدونه تضعك على الطريق وتساعدك على عمل مقارنه ما بين بعض الاقسام المختلفه ومن ثم تحدد ما تريد. اشكر الساده الزملاء الذين ساهموا فى انشاء المدونه.
رائع ان يكون هناك مدونة عربية تجمع ما بين الاخبار التقنية الاحترافية و دروس تعليمية قيمة في ذات المجال و انصح جميع المبتدئين و مزاولي المهنة متابعتها
ومن الجميل أن نرى مواقع عربية تدعم المحتوى العربي التعليمي في مجال البرمجيات والكومبيوتر ، ونأمل أن يكون موقع "مايندز" بإذن الله نواة جيدة في بناء المحتوى البرمجي العربي