إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    C++ الجملة switch

    تعريف الجملة switch

    switch نستخدمها إذا كنا نريد إختبار قيمة متغير معين مع لائحة من الإحتمالات نقوم نحن بوضعها, و إذا تساوت هذه القيمة مع أي إحتمال وضعناه ستتنفذ الأوامر التي وضعناها في هذا الإحتمال فقط.

    كل إحتمال نضعه يسمى case.

    أنواع المتغيرات التي يمكن إختبار قيمتها باستخدام هذه الجملة هي:
    int - byte - short - char - enum.


    طريقة تعريفها

    يمكننا تعريفها بعدة أشكال, الشكل الأساسي هو التالي:

    switch(expression) {

        case value:
            // Statements
            break;

        case value:
            // Statements
            break;

        default:
            // Statements
            break;

    }

    • switch تعني إختبر قيمة المتغير الموضوع بين قوسين.

    • expression هنا يقصد بها المتغير الذي نريد إختبار قيمته.
      نوع المتغير الذي يسمح لنا بإختباره: int - byte - short - char - String - enum.

    • case تعني حالة, value تعني قيمة, و Statements تعني أوامر.
      و يقصد من هذا كله, أنه في حال كانت قيمة الـ expression تساوي هذه القيمة سيقوم بتنفيذ الأوامر الموضوعة بعد النقطتين :.
      الآن بعد تنفيذ جميع الأوامر الموضوعة بعد النقطتين, يجب وضع break لكي يخرج من الجملة switch مباشرةً بدل أن ينتقل للـ case التالية الموجودة في الجملة switch.
      نستطيع وضع العدد الذي نريده من الـ case بداخل الجملة switch.
      إنتبه: الـ expression و الـ value يجب أن يكونا من نفس النوع.

    • default تعني إفتراضياً و هي نفس فكرة الجملة else, و يمكننا أن لا نضعها أيضاً.
      هذه الجملة تنفذ فقط في حال لم تنفذ أي case موجودة في الجملة switch و لذلك نضعها بالآخر.


    ملاحظة

    لا حاجة لوضع break للحالة الأخيرة لأن البرنامج سيخرج من الجملة switch في جميع الأحوال.


    ستفهم فكرة الجملة switch من خلال الأمثلة و سنريك كيف يمكنك أن تنفذ نفس الأوامر لأكثر من حالة, من خلال الأمثلة.


    المثال الأول

    سنقوم باختبار قيمة المتغير x و الذي نوعه int.

    سنضع عدة حالات و كل حالة تطبع شيء معين.

    Main.cpp
    #include <iostream>
    using namespace std;
    
    int main()
    {
        int x = 2;
     
        switch( x )   // x إختبر قيمة المتغير
    	{
            case 1:   // في حال كانت تساوي 1 سيتم تنفيذ أمر الطباعة الموضوع فيها
                cout << "x contain 1";
                break;
     
            case 2:   // في حال كانت تساوي 2 سيتم تنفيذ أمر الطباعة الموضوع فيها
                cout << "x contain 2";
                break;
     
            case 3:   // في حال كانت تساوي 3 سيتم تنفيذ أمر الطباعة الموضوع فيها
                cout << "x contain 3";
                break;
     
            default:   // في حال كانت لا تساوي أي قيمة من القيم الموضوعة سيتم تنفيذ أمر الطباعة الموضوع فيها
                cout << "x contain a different value";
        }
    
        return 0;
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    x contain 2
    		

    نلاحظ أنه تم تنفيذ أمر الطباعة الموجود في الحالة الثانية لأن قيمة المتغير x تساوي 2.

    هنا سأل نفسه التالي: هل قيمة المتغير x تساوي 1؟
    فكان جواب الشرط كلا ( false ), فانتقل إلى الحالة التي تليه.

    ثم سأل نفسه التالي: هل قيمة المتغير x تساوي 2؟
    فكان جواب الشرط نعم ( true ), فقام بتنفيذ أمر الطباعة الموجود في هذه الحالة, و بعدها خرج من جملة الـ switch بأكملها بسبب الجملة break.



    المثال الثاني

    سنقوم باختبار قيمة المتغير x و الذي نوعه int.

    سنضع عدة حالات و كل حالة تطبع شيء معين.

    Main.cpp
    #include <iostream>
    using namespace std;
    
    int main()
    {
        int x = 5;
     
        switch( x )   // x إختبر قيمة المتغير
    	{
            case 1:   // في حال كانت تساوي 1 سيتم تنفيذ أمر الطباعة الموضوع فيها
                cout << "x contain 1";
                break;
     
            case 2:   // في حال كانت تساوي 2 سيتم تنفيذ أمر الطباعة الموضوع فيها
                cout << "x contain 2";
                break;
     
            case 3:   // في حال كانت تساوي 3 سيتم تنفيذ أمر الطباعة الموضوع فيها
                cout << "x contain 3";
                break;
     
            default:   // في حال كانت لا تساوي أي قيمة من القيم الموضوعة سيتم تنفيذ أمر الطباعة الموضوع فيها
                cout << "x contain a different value";
        }
    
        return 0;
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    x contain a different value
    		

    نلاحظ أن تم تنفيذ أمر الطباعة الموجود في الحالة الإفتراضية لأن قيمة المتغير x لا تساوي أي قيمة من القيم الموضوعة في الحالات.

    هنا سأل نفسه التالي: هل قيمة المتغير x تساوي 1؟
    فكان جواب الشرط كلا ( false ), فانتقل إلى الحالة التي تليه.

    ثم سأل نفسه التالي: هل قيمة المتغير x تساوي 2؟
    فكان جواب الشرط كلا ( false ), فانتقل إلى الحالة التي تليه.

    ثم سأل نفسه التالي: هل قيمة المتغير x تساوي 3؟
    فكان جواب الشرط كلا ( false ), فانتقل إلى الحالة التي تليه.

    بما أنه لم يجد أي حالة تساوت فيها القيمة مع قيمة المتغير الذي يتم اختباره, قام بتنفيذ الأوامر الموجودة في الحالة الإفتراضية default, وعندما إنتهى من تنفيذ الأوامر خرج من جملة الـ switch بأكملها.

    وضع نفس الأوامر لأكثر من حالة

    إذا أردت وضع نفس الأوامر لأكثر من حالة, عليك وضع الحالات تحت بعضها, ثم كتابة الأوامر, ثم وضع break.


    مثال

    سنقوم باختبار قيمة المتغير x و الذي نوعه int.

    سنضع ثلاث حالات ينفذون نفس الأوامر.

    Main.cpp
    #include <iostream>
    using namespace std;
    
    int main()
    {
        int x = 3;
     
        switch( x )     // x إختبر قيمة المتغير
    	{
            case 1:     // في حال كانت تساوي 1 أو 2 أو 3 سيتم تنفيذ أمر الطباعة
            case 2:
            case 3:
                cout << "x contain 1 or 2 or 3";
                break;
     
            default:    // في حال كانت لا تساوي أي قيمة من القيم الموضوعة سيتم تنفيذ أمر الطباعة الموضوع فيها
                cout << "x contain a different value";
        }
    
        return 0;
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    x contain 1 or 2 or 3
    		

    نلاحظ أنه تم تنفيذ أمر الطباعة الموضوع للحالات الثلاث الأولى لأن قيمة x تساوي 3.

    هنا سأل نفسه التالي: هل قيمة المتغير x تساوي 1 أو 2 أو 3؟
    فكان جواب الشرط نعم ( true ), فقام بتنفيذ أمر الطباعة الموضوع لهذه الحالات الثلاث, و بعدها خرج من جملة الـ switch بأكملها بسبب الجملة break.

    وضع أكثر من إحتمال باستخدام العامل ...

    إذا كان لديك سلسلة من الإحتمالات تريد وضع نفس الأوامر عليها, يمكنك استخدام العامل ....


    مثال

    سنقوم باختبار قيمة المتغير x و الذي نوعه int.

    سنضع 100 حالة ينفذون نفس الأوامر باستخدام case واحدة.

    Main.cpp
    #include <iostream>
    using namespace std;
    
    int main()
    {
        int x = 40;
     
        switch( x )     // x إختبر قيمة المتغير
    	{
            case 1 ... 100:     // في حال كانت تساوي أي عدد صحيح موجود بين 1 و 100 سيتم تنفيذ أمر الطباعة
                cout << "x contain " <<  x;
                break;
     
            default:    // في حال كانت لا تساوي أي قيمة من القيم الموضوعة سيتم تنفيذ أمر الطباعة الموضوع فيها
                cout << "x contain a different value";
        }
    
        return 0;
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    x contain 40
    		

    نلاحظ أنه تم تنفيذ أمر الطباعة الموضوع للحالة الأولى لأن قيمة x موجودة بين 1 و 100.

    هنا سأل نفسه التالي: هل قيمة المتغير x تساوي 1 أو 2 إلخ.. حتى وصل إلى 40 فكان جواب الشرط نعم ( true ), لهذا قام بتنفيذ أمر الطباعة الموضوع لكل الحالات الموجودة بين 1 و 100 و بعدها خرج من جملة الـ switch بأكملها بسبب الجملة break.

    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب