الهدف هنا هو مثلا لدي متغير فما اريد هو
اذا كانت قيمة المتغير "كذا" افعل "كذا"
الكلمة السرية هنا هي "اذا" وهي if بالانكليزية
اذا الى الموضوع مباشرة
فرضا اننا اردنا ان نحدد اذا كان شخص راشد ام لا (يعني فوق 18 سنة)
هذا الكود البسيط يقوم بالعملية
هنا مايفعله الكود هو "اذا كانت قيمة العمر (age) اكبر او تساوي لـ 18 فسيكتب رسالة
"you are old enough" يعني انت كبير بما يكفي"
الان ماذا في حال انه اصغر من 18 واردنا ان نقول له انك لاتزال صغيرا
منطقيا سنستعمل شيء من هذا القبيل
لكن ايضا منطقيا اذا لم يكن عمر الشخص 18 او اكثر فسيكون عمره اقل
يعني ماذا لو قلنا "اذا كان عمرك 18 اواكثر قم بـ "كذا" غير ذلك قم بـ "كذا"
وهذا ما يفعله الكود التالي
انظروا النتيجة
وهنا بعد تغيير القيمة
الان دعنا نغير "الشرط" الذي على اساسه نقرر ما العمل
هنا ساستعمل bool
اظن ان الكود لايحتاج الى الشرح
لكن لنلقي نظرة على الكود الموالي
لولاحظتم هنا لم اقم بعملية مقارنة
فقط قمت بوضع متغير test داخل القوسين
لنجرب تشغيل البرنامج ونرى ما سيحدث
هل سيشتغل ؟ ام سيفتعل خطا؟
يبدو انه استغل

قبل ان اشرح ماحدث
لنحاول مع test = False
اظن انكم بداتم تفهمون ما يحدث هنا
لكن لنواصل مع بعض الامثلة الاخرى قبل ان ابدا الشرح
طيب الان دعنا نغير قيمة age لتكون اكبر من 18 ونرى ما سيحدث
اظنكم فهمتم ما حدث تماما لكن ساقوم ببعض الشرح على كل حال
هنا الحاسوب يقيم الشرط اذا كان صحيحا true فيدخل الى البلوك الاول
اذا كان خطا يدخل الى البلوك الثاني
على سبيل المثال عندما كان age = 15
وكان الشرط age >= 18
فالشرط هنا خطا false لذلك دخل الى البلوك الثاني
الان لما كان الشرط فقط متغير test
ماهي قيمة test ؟ انها صحيح true
لذلك دخل الى البلوك الاول
يعني ان عمليات "التقييم" مثلا (a==98) هي في الاصل ترجع اما true او false
لذلك امكننا ان نضعها في متغير test في المثال اعلاه
وهنا مزيد من الادلة عن كلامي
الان فرضا لو ان شرطنا لم يكن بهذه البساطة
يعني شرط مركب ، مثلا اذا كان عمرك اكثر من 20 و طولك اقل من متر و 60 ففعل "كذا"
هنا يمكننا استعمال && وهي تعليمة "و" في لغة الـ #C
انظر هنا مثلا
والان ماذا لوكان الشرط على هذه الشاكلة
"اذا كان عمرك 15 او طولك متر وثمانون"
هنا نستعمل || وهي تعليمة "او" في السي شارب
ويمكننا طبعا تكبير تركيبة الشرط مثلما اردنا وخلط استعمال الـ "و" والـ "او"
مثلا هنا
انظر النتيجة
ايضا يمكننا عكس الشرط باستعمال علامة !
انظر هذه المثلة ستفهم دورها بالتحديد
الان فرضا لو انه كان لدينا عدة حالات للتقيم
يعني اذا كذا افعل كذا اذا كذا افعل كذا ...
هنا يمكننا العمل بهذه التركيبة
لكن اذا كثرت الحالات وكنا نستعمل نفس الشرط في كل مرة فقط مع تغيير القيمة
عندئذ من المستحسن استعمال switch والتي تعني "حسب قيمة كذا"
هذا المثال سيشرح افضل
اظن ان الامر واضح ، لربما تتساءلون عن دور تعليمة Break
فقط اصبروا لحظة ساقول بشرحها بعد المثال الموالي
بالنسبة للمثال الموالي
فرض انه في بعض القيمات تريد القيام بنفس العملية وفي بعض القيمات الاخرى تقوم بعمليات اخرى
يعني مثلا نضع متغير اشهر وحسب قيمته نحدد الفصل
مثلا اذا كان جوان او جويلية نقول انه فصل الصيف ...
بدل ان نقول بنسخ نفس التعليمات في عدة حالات هذا مانقوم بفعله
الان الى دور تعليمة break
ببساطة هي تخرجك من البلوك المتواجد فيه حاليا
يعني مثلا قيمة month هي May عندها ستظهر رسالة Spring ! على الشاشة وتخرج من بلوك switch
يعني لن تقوم بمقارنة قيمة month مع باقي الاحتمالات مثلا
وهنا ينتهي درسنا لليوم