C الشرطية

مقدمة إلى C Conditionals: if / else و switch

توفر أي لغة برمجة للمبرمجين القدرة على أداء الخيارات.

نريد تنفيذ X في بعض الحالات ، و Y في حالات أخرى.

نريد التحقق من البيانات ، والقيام بالاختيارات بناءً على حالة تلك البيانات.

يوفر لنا C طريقتين للقيام بذلك.

الأول هوifالبيان ، معelseالمساعد ، والثاني هوswitchبيان.

if

فيifالعبارة ، يمكنك التحقق مما إذا كان الشرط صحيحًا ، ثم تنفيذ الكتلة المتوفرة في الأقواس المتعرجة:

int a = 1;

if (a == 1) { /* do something */ }

يمكنك إلحاق ملفelseمنع لتنفيذ كتلة مختلفة إذا تبين أن الشرط الأصلي خاطئ ؛

int a = 1;

if (a == 2) { /* do something / } else { / do something else */ }

احذر من أحد المصادر الشائعة للأخطاء - استخدم دائمًا عامل المقارنة==في المقارنات ، وليس عامل التخصيص=، وإلا فإنifسيكون الاختيار الشرطي صحيحًا دائمًا ، ما لم تكن الوسيطة0، على سبيل المثال إذا قمت بما يلي:

int a = 0;

if (a = 0) { /* never invoked */ }

لماذا يحدث هذا؟ لأن الفحص الشرطي سيبحث عن نتيجة منطقية (نتيجة مقارنة) ، و0الرقم دائمًا يساوي قيمة خاطئة. كل شيء آخر صحيح ، بما في ذلك الأرقام السالبة.

يمكن أن يكون لديك عدة ملفاتelseكتل من خلال تكديس بعضها البعضifصياغات:

int a = 1;

if (a == 2) { /* do something / } else if (a == 1) { / do something else / } else { / do something else again */ }

switch

إذا كنت بحاجة إلى القيام بالكثير من الكتل if / else / if لإجراء فحص ، ربما لأنك تحتاج إلى التحقق من القيمة الدقيقة للمتغير ، إذنswitchيمكن أن يكون مفيدًا جدًا لك.

يمكنك توفير متغير كشرط وسلسلة منcaseنقاط الدخول لكل قيمة تتوقعها:

int a = 1;

switch (a) { case 0: /* do something / break; case 1: / do something else / break; case 2: / do something else */ break; }

نحن بحاجة إلىbreakالكلمة الأساسية في نهاية كل حالة ، لتجنب تنفيذ الحالة التالية عندما تنتهي الحالة السابقة. يمكن أن يكون تأثير "التسلسل" مفيدًا في بعض الطرق الإبداعية.

يمكنك إضافة حالة "استقبال الرسائل الخاطئة" في النهاية ، بعنوانdefault:

int a = 1;

switch (a) { case 0: /* do something / break; case 1: / do something else / break; case 2: / do something else / break; default: / handle all the other cases */ break; }

تحميل مجانيكتيب C


المزيد من دروس clang: