IF - ELSجملة E
قبل البدأ في شرح جملة IF - ELSE وتوضيح صيغتها العامة، يجب أن نتطرق إلى موضوع مهم وهو التعابير البوليانية في لغة باسكال، فلنبدأ على بركة الله.
التعابير البوليانية :
في لغة باسكال تظهر التعابير البوليانية على أحد شكلين:
1- المتغيرات البوليانية Boolean variables
وهي عبارة عن متغيرات خاصةتعرف في القسم VAR من البرنامج، وتأخذ أحد قيميتن True أو False
VAR
switch : Boolean;
هنا المتغير switch يأخذ أحد قيمتين Ture أو False
switch := Ture;
switch := False;
ويجب ملاحظة أنه لا يمكن قراءة مثل هذه المتغيرات باستعمال الدالة read إلا أنه من الممكن طباعتها بالدالة write.
2- متغيرات مربوطة بعوامل نسبية Relation Operators:
من الممكن صياغة التعابير البوليانية باستعمال متغيرات تربط بينها العوامل النسبية التالية
= يساوي
<> لا يساوي
=> أقل من أو يساوي
=< أكبر من أو يساوي
> أقل من
< أكبر من
3- تعابير بوليانية مربوطة بعوامل منطقية logical operators
يمكن ربط أكثر من تعبير بولياني باستعمال أحد العوامل المنطقية التالية
NOT نفي
AND و
OR أو
ملاحظة:
العوامل المنطقية تتمتع بأسبقية أعلى من العوامل النسبية، لهذا فإن التعبير التي يعتبر خطأ:
NOT 4>5
لأن العامل NOT سوف يطبق أولا، لذا يجب كتابه التعبير السابق كما يلي:
NOT (4>5)
لتكون قيمته true
بعد هذا الشرح عن التعابير البوليانية، نعود إلى جملة IF
جملة IF ELSE
الشكل العام لها:
IF boolean expression
THEN statment1
ELSE statment2
&& الحالة الأولى:
عندما يكون لدينا عبارة واحدة في فيعي جملة IF
مثال: لدينا متغيرين num1 و num2 والمطلوب طباعة العدد الأكبر بينهما
IF num1>num2
THEN writeln('The larger is: ', num1)
ELSE writeln('The larger is: ', num2)
لاحظ هنا عدم وجود فاصلة منقوطة في العبارات بعد THEN و ELSE
&& الحالة الثانية:
عندما تكون لدينا أكثر من عبارة في كل فرع من فرعي الـ IF
مثال: في نفس المثال السابق لو كان المطلوب تخزين الرقم الأكبر في متغير max بعد طباعته
IF num1>num2
THEN BEGIN
writeln('The larger is: ', num1);
max:= num1
END
ELSE BEGIN
writeln('The larger is: ', num2);
max:= num2
END
في هذه الحالة نحتاج إلى وضع العبارات التي بداخل الـ THEN بين BEGIN و END ونفصل بينها بفواصل منقوطة، ولكن بدون فاصلة قبل الـ ELSE
لا يوجد حالياً أي تعليق