برمجة سي ++/الدرس الرابع
الجملة الشرطية if
عدلتعتبر الأوامر الشرطية احدا أهم وظائف البرنامج فهي تحول مسار التشغيل بناءأ على تنفيذ شرط معين فمثلاً
int a=4; int b=0; if(a>0) b=5;
هذا البرنامج هو ابسط مثال ممكن لتوضيح الجملة الشرطية if فهي تقارن إذا ماكانت قيمة المتغير a أكبر من 0 (وهي بالفعل كذلك) فعندما تحقق الشرط سوف تنفذ العملية التالية والتي تعين القيمة 5 للمتغير b وفي حالة عدم تحقق الشرط سوف يبقى المتغير b بنفس قيمته السابقة.
لاحظ ان داخل القوسين في جملة if هو ناتج عملية منطقية بمعنى انه اما يكون صادق true أو يكون خاطيء false.
عوامل المقارنة المنطقية
عدل- a == b :هل يساوي
- a != b :هل لايساوي
- a > b :هل a أكبر من b
- a < b :هل a اصغر من b
- a >= b هل a أكبر أو تساوي b
- a <= b هل a اصغر أو تساوي b
فكما ذكرنا سابقا ان نتائج هذه المقارنة تكون نتائجها دائما اما true أو false
والجملة الشرطية if هي من ضمن الجمل الشرطية الأكثر استخداما في لغات البرمجة بشكل عام وهي أبسطها أيضا، ويمكن إستكمال مسار البرنامج بعد جملة if بجملة else التي يستمر فيها مسار التشغيل في حال عدم تحقق الشرط الأول، و else تعني "عدا ذلك" ، وبالتالي يصبح منطق الجملة الشرطية:
إذا كان (كذا) صحيح إفعل كذا وكذا عدا ذلك ، أي إذا لم يكن الشرط الأول صحيح إفعل شيء آخر
وكمثال تطبيقي ، يمكن لبرنامج بسيط أن يقرر هل علامة طالب في امتحان ما هي علامة نجاح أم رسوب بمقارنتها بعلامة النجاح 50.
فنقول،
إذا كانت العلامة أكبر أو يساوي 50 فإن الطالب ناجح عدا ذلك فإن الطالب راسب
وبلغة سي بلس بلس
if (x >= 50 ) cout << "PASS!"; else cout << "FAIL!";
لاحظوا أن ما يتم تطبيقه في هذه الحالة هي جملة واحدة ، وهي cout << "PASS!" أو cout << "FAIL!" في حال نجاح الطالب أو رسوبه على الترتيب، ولكن ماذا لو أردنا تطبيق أكثر من جملة في حال النجاح أو الرسوب ، في هذه الحالة ، يجب أن نضمّن الجمل المراد تطبيقها في أقواس ملتوية {} .
if (x >= 50 ) { cout << "Congratulations, You PASSED!"; result=1; } else { cout << "OH... Sorry, but you FAILED!"; result=0; }
مثال اخر
عدليقوم هذا البرنامج بالطلب من المستخدم ادخال أي عدد، وبناء على العدد المدخل يتم اظهار رسالة تحدد لو كان العدد زوجي أو فردي.
#include <iostream>
using namespace std;
int main()
{
int number; // اضافة متغير جديد
cout << "Enter the number";
cin >> number; // الطلب من المستخدم اضافة عدد
if ( number % 2 == 0 ) // لو كان باقي قسمة العدد على 2 تساوي 0 فهذا يعني ان العدد زوجي
cout << "This is even number\n";
else // غير ذلك
cout << "This is odd number\n";
return 0;
}
أمر switch
عدليستعمل حين يكون لدينا عدة شروط (أو حالات) لمتغير واحد ، فالأفضل استخدام switch بدلاً من جمل if - else متعددة، تتكون جملة switch من :
- كلمة switch. متبوعة باسم المتغير بين قوسين.
- كلمة case (تعني حالة). متبوعة بالقيمة المراد البحث عنها أو تطبيق بقية الجملة في حال مطابقتها لقيمة المتغير الذي تم تمريره مسبقا ل"switch"، ومتبوعة بنقطتين متعامدتين (:).
- جملة الأوامر المراد تطبيقها للحالة المعرفة عند "case".
- كلمة break، التي تفيد انتهاء جملة الأوامر المراد تطبيقها.
- كلمة default، وهي تستخدم لتطبيق جملة أوامر في حال لم تطابق أي حالة سابقة (case) القيمة المدخلة لswitch.
والsyntax :
switch(var){ case 2 : cout << "The value of var is = 2"; break; case 3 : cout << "The value of var is = 3"; break; default : cout << "The value of var must be lower than 2, or higher than 3"; }
حيث أن "var" هو المتغير الذي نريد اختباره و تطبيق الشرط على أساسه.