الدالة Case
عبارة case
يمكن اعتبار تركيب case كتركيب if موسعة ، إنها تمكنك من تنفيذ عبارة واحدة من عدة كتل برمجة معتمدة على نتيجة تعبير معين
التعبير ممكن يكون متغير ، أو نتيجة استدعاء تابع أو أية شفرة من باسكال كلها تعطي تعبيرا
للتعرف على الصيغة العامة لتركيب case نشاهد المثال
case var of
val_1 : statement_1;
val_2 : statement_2;
val_3 : statement_3;
;
;
else
statement_else;
end;
عندما يبدأ البرنامج في تنفيذ تركيب case سيمر على قيمة val_1 ويقارن بين الثابت val_1 والمتغير Var إذا وجدهما متساويين سيقوم البرنامج بتنفيذ جميع الأوامر التي تليها حتى يصل إلى نهاية الكتلة ( تحدد الكتلة بالعبارات بين Begin , end في حالة استخدام أكثر من عبارة واحدة كما سبق شرحه ) أما إذا لم يجدهما متساويين فإنة سيتخطاها بجميع العبارات الواردة بعدها وينتقل إلى الثابت الآخر ويكرر المحاولة وهكذا يمر البرنامج عليها كلها فإذا لم يجد الثابت المطلوب منها فإنه سيتخطاها إلى كلمة else وينفذ العبارات الواردة بعدها حتى نهاية التركيب .
ملاحظة مهمة
يجب أن يعطى التعبير ضمن الدالة case قيمة تنتمي إلى نمط مرتب من الأنواع ( Integer,Byte,Word )
بحيث لايمكنك كتابة مايلي مثلاً
case str of
'Own' : {code};
'Two' : {code};
end;
يمكن جعل البرنامج ينفذ كتلة أوامر عند أكثر من قيمة
كما أن إستخدام الدالة else في الإجراء Case يعتبر اختياري ومثال على ذلك
case x of
1: y:=sin(x);
2,3 : y:=cos(x);
4,5,6: y:=x;
end;