0% found this document useful (0 votes)
4 views6 pages

Lesson 5 if (expression)

Uploaded by

thevisionnary1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views6 pages

Lesson 5 if (expression)

Uploaded by

thevisionnary1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

‫‪www.gammal.

tech‬‬

‫‪Lesson 5 if‬‬

‫مرحبا زمالئي المبرمجين!‬


‫إذا كنت تحب البرمجة ‪ ،‬قل "أحب البرمجة!"‬
‫هذا صحيح! يتحدث هذا الدرس عن األمر ‪ if‬وكيف يمكننا استخدامه في الكود!‬
‫إنها بسيطة مثل اسمها‪ .‬فكر في األمر مثل المثال السابق ‪ ،‬إذا كنت ال تحب البرمجة ‪ ،‬فلن‬
‫تقول "أحب البرمجة!" لن تقرأ هذا حتى ‪.‬‬
‫لنقم بإنشاء كود مثل ذلك ‪:‬‬

‫>‪#include <stdio.h‬‬

‫{ ) (‪int main‬‬
‫‪printf("Do you love programming? Enter a number bigger than‬‬
‫;)" !‪4 if yes‬‬
‫;‪int x‬‬
‫;)‪scanf("%d", &x‬‬
‫)‪if(x > 4‬‬
‫;)"‪printf("YAY! YOU LOVE PROGRAMMING! \n‬‬
‫‪else‬‬
‫;)"‪printf("oh no!\n‬‬
‫}‬
‫) قم بتجربة الكود بنفسك واضغط هنا (‬
‫في السطر األول ‪ ،‬نوجه المستخدم ببساطة إلى المدخالت التي يحتاجها هذا البرنامج‪.‬‬
‫ثم نقوم بحجز المتغير‪.‬‬
‫بعد ذلك ‪ ،‬نأخذ مدخالت من المستخدم ونخزنها‪.‬‬
‫في جزء الـ " ‪ ، " if‬يمكنك رؤيته على أنه نوع من البوابة التي ال تفتح إال عند استيفاء‬
‫المعايير الموجودة داخل األقواس ( ) ‪ .‬في هذه الحالة ‪ ،‬إذا كان الرقم الذي تم إدخاله أكبر‬
‫من ‪ ، 4‬فإن البوابة "تفتح" وأي كود بعد سطرال ‪ if‬يتم تنفيذه‪.‬‬

‫‪1‬‬
‫‪www.gammal.tech‬‬

‫لكن فى حالة لم يتم تحقق الشرط داخل ال ‪ if‬حين ذلك يبحث البرنامج عن الخيارات‬
‫األخرى و التى تكون موجودة بعد كلمة ‪ else‬و التى بمعنى وإال ‪ ،‬فنجد فى المثال السابق‬
‫إذا لم يتم استيفاء المعايير داخل ال ‪ ، if‬ينتقل إلى السطر التالي في الكود ‪ ،‬والذي يكون في‬
‫هذه الحالة "‪ "else‬فيجد داخله أمر طباعة أخر يقوم بتنفيذه و يطبع " ‪" !oh no‬‬

‫هل الحظت أننا استخدمنا عالمة < للمقارنة بين قيمتين ؟‬


‫نعم فنحن لدينا بعض العالمات التى تسمى بال ‪ operators‬كل عالمة منهم لها وظيفة‬
‫معينة فمثال‬
‫● عالمتى أكبر من و أصغر من ( > ) ‪ ) < ( ,‬يتم إستخدامهم للمقارنة بين األرقام‬
‫○ عندما نقول ( ‪ ) x>y‬معناها إذا كانت ‪ x‬أكبر من ‪y‬‬
‫○ عندما نقول ( ‪ ) x<y‬معناها إذا كانت ‪ x‬أصغر من ‪y‬‬
‫● عالمة يساوى ( == ) يتم استخدامها للتحقق من ما إذا كانت القيمتان على طرفى‬
‫العالمة متساويان أم ال ‪.‬‬
‫○ عندما نقول ( ‪ ) x == y‬معناها إذا كانت ‪ x‬تساوى ‪y‬‬
‫● عالمة ال يساوى ( =! ) هى عكس عالمة ( == ) يتم استخدامها للتحقق من ما‬
‫إذا كانت القيمتان على طرفى العالمة غير متساويان أم ال ‪.‬‬
‫○ عندما نقول ( ‪ ) x != y‬معناها إذا كانت ‪ x‬ال تساوى ‪y‬‬

‫الحظ عند التحقق من ما إذا كانت القيمتان على طرفى العالمة متساويان أم ال إستخدمنا (‬
‫== ) و ليس عالمة ( = ) واحدة ألن عالمة = الواحدة هكذا معناها ضع القيمة التى على‬
‫يمين العالمة داخل المتغير الذى على يسار العالمة ( مثلما عرفنا فى درس ال‬
‫‪) variables‬‬
‫لذلك فإن ‪ x = y‬معناها ضع نفس قيمة المتغير ‪ y‬داخل المتغير ‪ x‬فلو كانت ال ‪ y‬تساوى‬
‫‪ 5‬إذا ال ‪ x‬أصبحت تساوى ‪5‬‬
‫أما ‪ x == y‬كما ذكرنا معناها إذا كانت قيمة ‪ x‬تساوى قيمة ‪y‬‬

‫أمر ‪: else‬‬

‫لنفترض أنك تريد شراء البقالة‪ .‬أولويتك هي شراء األفوكادو ‪ ،‬لكن إذا نفد المخزون ‪،‬‬
‫اشتر الخوخ‪.‬‬
‫ِ‬ ‫ستشتري الخوخ بدالً منه‪ .‬لذلك ‪ ،‬إذا كان هناك أفوكادو ‪ ،‬قم بشرائها ‪ ،‬وإال ‪،‬‬

‫‪2‬‬
‫‪www.gammal.tech‬‬

‫لذا فإن كلمة "‪ "else‬في الكود السابق تعني أنه إذا لم يكن الرقم الذي تم إدخاله أكبر من ‪4‬‬
‫‪ ،‬أي أنه لم يتم استيفاء المعايير ‪ ،‬فسيتم تنفيذ الكود الموجود داخل ال‪ else‬و سيطبع‬
‫" !‪." Oh no‬‬

‫ملحوظة ‪ :‬ليس بالضرورة وجود ‪ else‬بعد ‪ ،if‬لكن تكتبها إذا كنت فى حاجة لذلك فى‬
‫البرنامج الخاص بك‪.‬‬

‫أمر ‪: else if‬‬


‫لنفترض أنك تريد شراء البقالة و ذهبت إلى السوبر ماركت‪ ،‬فقلت أنه لو معك ‪ 50‬جنيه أو‬
‫أكثر ستشترى اللبن و البيض ‪ ،‬أما لو معك ‪ 20‬جنيه أو أكثر ستشترى اللبن فقط و لو كان‬
‫معك ‪ 10‬جنيهات أو أقل ستشترى البيض فقط ‪.‬‬
‫فى هذا المثال يوجد عدة احتماالت للقرار الذى سوف تتخذه و لكل احتمال شرط معين‪،‬‬
‫كيف نقوم بذلك فى البرنامج ‪:‬‬

‫>‪#include <stdio.h‬‬

‫{ ) (‪int main‬‬
‫;)" ? ‪printf("How much money do you have‬‬
‫;‪int x‬‬
‫;)‪scanf("%d", &x‬‬
‫)‪if(x >= 50‬‬
‫;)"‪printf(" Buy milk and eggs \n‬‬
‫)‪else if (x >= 20‬‬
‫;)"‪printf(" Buy milk only \n‬‬
‫)‪else if (x <= 10‬‬
‫;)"‪printf(" Buy eggs only \n‬‬
‫}‬

‫‪3‬‬
‫‪www.gammal.tech‬‬

‫نفهم من المثال السابق أن عندما يكون هناك أكثر من شرط و على أساسهم سيقوم البرنامج‬
‫بالتصرف بطريقة معينة‪ ،‬نستخدم ‪ else if‬مع ال ‪ if‬األساسية و سيتم تنفيذ األمر الضى‬
‫تحقق الشرط الخاص به‪.‬‬

‫( ألقوياء المالحظة ) ربما الحظت أننا قمنا بإستخدام عالمتان مختلفتان معا ( =< ) و (‬
‫=> ) فما معنى ذلك ؟‬
‫عالمة أكبر من أو يساوى ( =< ) معناها هل القيمة التى على اليسار أكبر من أو تساوى‬
‫القيمة على اليمين ؟‬
‫عالمة أصغر من أو يساوى ( => ) معناها هل القيمة التى على اليسار أصغر من أو‬
‫تساوى القيمة على اليمين ؟‬

‫يمكن أن تسأل نفسك ماذا لو أدخل شخص ما رقم ‪ ،70‬فى هذه الحالة الشرط األول و‬
‫الثانى متحققين‪ ،‬حيث أن ال ‪ 70‬أكبر من ال ‪ 50‬و فى نفس الوقت أكبر من ‪ ،20‬إذا يجب‬
‫تنفيذ األوامر التى بداخلهما و يقوم البرنامج بطباعة الجملتين معا‬

‫‪Buy milk and eggs‬‬


‫‪Buy milk only‬‬

‫لكن فى حقيقة األمر سيطبع البرنامج الجملة األولى فقط‬


‫‪Buy milk and eggs‬‬

‫و ذلك ألن ما إن تحقق شرط ما فى الشروط الموجودة لن ينظر البرنامج إلى باقى الشروط‬
‫طالما تم استخدام مصطلح ‪ ،else‬بمعنى أنه كان من الممكن أن يتم طباعة الجملتين هكذا‬
‫إذا كان البرنامج على هذا الشكل ‪:‬‬
‫>‪#include <stdio.h‬‬

‫{ ) (‪int main‬‬
‫;)" ? ‪printf("How much money do you have‬‬

‫‪4‬‬
‫‪www.gammal.tech‬‬

‫;‪int x‬‬
‫;)‪scanf("%d", &x‬‬
‫)‪if(x >= 50‬‬
‫;)"‪printf(" Buy milk and eggs \n‬‬
‫)‪if (x >= 20‬‬
‫;)"‪printf(" Buy milk only \n‬‬
‫)‪if (x <= 10‬‬
‫;)"‪printf(" Buy eggs only \n‬‬
‫}‬
‫فى هذه الحالة كل ‪ if‬مستقلة بذاتها‪ ،‬فكلما يتحقق شرط ما سوف ينفذ البرنامج ما بداخل ال‬
‫‪ if‬و فى حالة تم إدخال رقم مثل ‪ 70‬سيتم طباعة الجمبة األولى و الثانية ‪:‬‬

‫‪Buy milk and eggs‬‬


‫‪Buy milk only‬‬
‫لذلك أمر ‪ else‬و ‪ else if‬مفيدين للغاية فى تسهيل عمل البرنامج و تحقيق شروطه‬
‫بسهولة و دقة‪.‬‬

‫أخر أمر عليك معرفته حاليا أنه ليس دائما سيكون هناك أمر واحد فقط يتم تنفيذه داخل ال‬
‫‪ if‬أو ال ‪ else‬و ال ‪ ، else if‬إذا كان هناك أكثر من أمر يتم تنفيذه نستخدم األقواس‬
‫المموجة { } لنكتب بداخلها األوامر مثل ‪:‬‬
‫>‪#include <stdio.h‬‬

‫{ ) (‪int main‬‬
‫;)" ? ‪printf("How much money do you have‬‬
‫;‪int x‬‬
‫;)‪scanf("%d", &x‬‬
‫{ )‪if(x >= 50‬‬

‫‪5‬‬
‫‪www.gammal.tech‬‬

‫;)"‪printf(" Buy milk and eggs \n‬‬


‫;)"‪printf(" Get extra sweets \n‬‬
‫;)"‪printf(" Go back home \n‬‬
‫}‬
‫{)‪else if (x >= 20‬‬
‫;)"‪printf(" Buy milk only \n‬‬
‫;)"‪printf(" put gas in the car \n‬‬
‫}‬
‫)‪else if (x <= 10‬‬
‫;)"‪printf(" Buy eggs only \n‬‬
‫}‬
‫يمكنك إستخدام األقواس { } دائما حتى لو كان هناك أمر واحد للتنفيذ و لكنك غير ملزم‬
‫بذلك‪ ،‬و لكنك ملزم بذلك إذا كان هناك أكثر من أمر للتنفيذ‬

‫األخطاء الشائعة في الكود‪:‬‬

‫● استخدام = بدال من ==‬

‫● كتابة عالمة المقارنة بطريقة خاطئة مثل ( >= ) بدل من ( =< )‬

‫● نسيان استخدام األقواس { } فى حالة وجود أكثر من أمر‬

‫اآلن أنت تعرف إذا كان لديك شرط ‪ ،‬ماذا ستفعل !‬

‫‪6‬‬

You might also like