اختبار قيم المتغيرات عن طريق جملة switch في لغة السي C الدرس|10| - Programmer Tech

Programmer Tech

تعلم البرمجة - علوم الكمبيوتر - أمن المعلومات - القرصنة الأخلاقية

إعلان اعلى المقالة

الأربعاء، 31 مارس 2021

اختبار قيم المتغيرات عن طريق جملة switch في لغة السي C الدرس|10|


جملة الإحتمالات الشرطية switch في لغة C

سوف نتعرَّف في هذا الدرس على جملة شرطية شبيهة بجملة if التي تعلمناها سابقاً, و هذه الجملة ُتُسمى بجملة switch حيث يمكن إستبدال جملة if بها في بعض الأحيان كما أنها تُعَد اكثر ترتيباً من جملة if التي تحتوي على العديد من جمل else, if تقوُم جملة switch بأخذ مُتَغَير عددي واحد ثم تقوم بمقارنته بعدد من الحالات Casses التي قام المبرمج بوضعها و إن تحققت يتم تنفيذ جملة معينة, جملة switch تُستخدَم لمقارنة قيم من متغير عدد واحد من القيم التي يُحتمَل أن يأخذها.


الشكل العام لها

switch (var)
{
    case 1:
        statement1;
        statement2;
        break;
    case 5:
        statement1;
        break;
    default:
        statement1;
}

 

نقوم بكتابة switch ثم نضَع بين القوسين مُتغير او قيمة عددية ثم نفتَح الأقواس المجعدة, و لكل حالة نُريدها نقوم بكتابة العبارة case اي الحالة متبوعة بالقيمة المشروطة التي تُمَثِل الحالة ثم نقطتين و وضعنا case1 أي إذا كانت قيمة var تُساوي 1 ثم نقطتين و قم بتطبيق الحالة التالية مثلاً statement1 و statement2 سيتم تنفيذ أي اكواد عند case1 إذا كانت var تُساوي 1 ثم نضع break لإنهاء هذا السطر, و نُلاحظ عند كتابة case1 لا نَضَع اقواس مجعدة, و جملة switch يمكن أن تحتوي على عدد لا نهائي من الحالات في حال كانت مثلاً case5 نفس الأمر في case1 و اخيراً نقوم بإنهاء جملة switch في حالة عامة default يتم تنفيذها في حال لم تنطبِق أي من الحالات الأُخرى في الأعلى أي أنها شبيهة بمبدأ else تماماً في جملة if الشرطية, هُنا نفتَرِض أن var تُساوي 2 سوف يَمُر اولاً و يقول هل 2 تساوي 1 عند case1 و هو لا و سوف يَمُر بنفس الأمر على case5 فيكون لا ثم في النهاية يُنَفِذ الحالة default.

 

مثال

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

int main(int argc, char** argv)
{
    int cost = 2;
    if (cost == 2)
    {
        printf("السعر رخيص\n");
    }
    else if(cost == 3)
    {
        printf("السعر عادي");
    }
    else if(cost == 4)
    {
        printf("السعر غالي");
    }
    else
    {
        printf("يرجى مراجعة المحاسبة");
    }
    switch (cost) {
        case 2:
            printf("السعر رخيص\n");
            break;
        case 3:
            printf("السعر عادي");
            break;
        case 4:
            printf("السعر غالي");
            break;
        default:
            printf("يرجى مراجعة المحاسبة");
    }
    return 0;
}

 

شرح المثال السابق

في بداية المثال السابق إستخدمنا جمل if الشرطية و else لقد تحدثنا عنها في الدرس السادس, ثم أتينا لشرط switch الذي هو موضوع درسنا الحالي و قلنا له case 2 أي إذا كانت القيمة 2 قُم بطباعة السعر رخيص ثم قُم بإيقاف الحلقة عبر break, ثم وضعنا إحتمال آخر و هو case 3 بأن يطبع لنا السعر طبيعي بحال تم تحقق الشرط و ايضاً إحتمال case 4 بأن يطبع أن السعر غالي و في حال لم يتم تحقق أي من الشروط في الأعلى يقوم بتنفيذ الحالة الإفتراضية default بأن يتم مراجعة المحاسبة و عند تشغيل البرنامج سنحصل على النتيجة الآتية


نلاحظ أنه طبع لنا أن السعر رخيص مرتين و هما الأول عند عبارات if الشرطية لقد تحقق الشرط و الثانية ايضاً تحقق شرط عبارة switch الأولى.

في حال عدم كتابة جملة break في أحد حالات جملة switch فإن ذلك سوف يؤدي إلى القفز إلى الحالة التي تليها حتى و إن لم ينطبق شرطها, و على سبيل المثال لمثالنا السابق في حال كانت قيمة var هي 1 فسيتم تنفيذ الشرط في case 1 و بعدها سيتم القفز إلى الحالة التي تليها بدلاً من إنهاء جملة switch ككل لذا يجب أن نضع break في كل حالات جملة switch بإستثناء حالة default التي لا يأتي بعدها حالات أخرى إلا إن كان المبرمج قاصداً لذلك أن يحدث.

إضغط هنا للرجوع للدرس السابق

ليست هناك تعليقات:

إرسال تعليق

facebook

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *