 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:333
|
|
25-05-2017, 12:22 PM
المشاركة 1
|
|
التحكم فى سير البرنامج :
يتم تنفيذ معظم عبارات statements البرنامج بشكل "متتابع" sequentially ، عبارة تلو الأخرى . هناك الكثير من الحالات التى يتطلب البرنامج "اتخاد قرار" حول العملية التى يتم تنفيذها فى الخطوة التالية . يمكن تعديل التحكم فى سير فى البرنامج باستخدام "عبارات التحكم فى سير البرنامج" . هذه العبارات تتضمن تعجيل السير بناء على "الاختيار" ، والتعديل الغير مشروط للسير ، وعبارات التكرار iteration . فى هذا الجزء ، سوف نتناول هذه العبارات التى تعدل من مسار التحكم فى البرنامج .
عبارات الاختيار Selection Statements :
تستند عبارات الاختيار على التعديل "المشروط" للتحكم فى سير البرنامج . على سبيل المثال ، إذا تم تقييم "شرط" بالقيمة TRUE ، عندئذ يتم تنفيذ جزء معين من البرنامج ، وإلا يتم تنفيذ جزء مختلف .
هناك عبارتين للاختيار : عبارات “if-else” وعبارة “switch-case” .
عبارات الاختيار if-else :
عبارة if :
عبارة “if” الأساسية لها الشكل التالى ، حيث التعبير expression عادة يتضمن عوامل منطقية أو عوامل علاقات مقارنة :
كود:
if(expression) statement;
• تستخدم عبارة if عندما يكون المطلوب تنفيذ عبارة ما "إذا تحقق شرط معين" .
• عبارة if تقييم (تختبر) تعبير الشرط expression الموجود داخل القوسين ( …) .
• إذا كانت نتيجة تقييم تعبير الشرط true ( قيمة غير صفرية) ، يتم تنفيذ العبارة statement (جسم if ) .
• إذا كانت نتيجة تقييم تعبير الشرط false(0) ، يتم تخطى تنفيذ العبارة statement (جسم if ) .
• لمعرفة المزيد عن تقييم تعبير الشرط ، راجع العوامل المنطقية وعوامل العلاقة .

فى المثال التالى ، إذا كان المتغير “p” يساوى “10” ، عندئذ فإن المتغير “k” يتم تزايده بواحد :
كود:
if(p == 10) k++;
ونظرا لأن المسافات البيضاء يتم إهمالها فى لغة السى فيمكن وضع العبارة statement فى سطر مختلف كما يلى :
if(p == 10)
k++;
عبارة if…else :
الصيغة العامة :
كود:
if (expression) statement1 else statement2
• تستخدم عبارة if…else عندما يكون المطلوب تنفيذ عبارة ما statement1 عندما يتحقق شرط expression ، أوتنفيذ عبارة مختلفة statement2 إذا لم يتحقق هذا الشرط .
• عبارة “if” يمكن أن تستخدم مع “else” ، بحيث إذا كان تقييم تعبير الشرط expression بالقيمة true يتم تنفيذ العبارة التى تلى if (جسم if ) وتخطى تنفيذ العبارة التى تلى else .
• أما إذا كان تقييم التعبير expression بالقيمة false ، عندئذ يتم تخطى تنفيذ العبارة التى تلى if العبارة ، ويتم تنفيذ العبارة التى تلى “else” (جسم else) .

فى المثال التالى ، إذا كان المتغير Total يساوى MAX ، عندئذ يتم تزايد المتغير Sum بواحد ، وإلا (وأن لم يكن يساويه) يتم تناقص المتغير Sum بواحد :
كود:
if(Total == MAX) Sum++; else Sum–;
العبارة السابقة عادة يتم كتابتها بالشكل التالى :
if(Total == MAX)
Sum++;
else
Sum–;
• فى بعض التطبيقات ، قد نحتاج إلى تنفيذ أكثر من عبارة واحدة إذا كان الشرط TRUE أو FALSE . يتم تنفيذ ذلك بضم تلك العبارات داخل زوج من الأقواس “{}” ، كما هو مبين فى المثال التالى :
كود:
if(Cnt > Sum)
{
i = k + 4;
j = j*2;
}
if(i == 10 && Cnt < 100)
{
r1 = 2*x;
r2 = i + 4;
}
else
{
r1 = 0;
r2 = 0;
}
عبارة if…else المتداخلة ( عبارة if…else lf…else ):
عبارة if…else تنفذ كودين مختلفين بناء على كون اختبار الشرط بالقيمة true أو false . أحيانا يكون الاختيار من أكثر من احتمالين .
عبارة if…else المتداخلة تسمح لك بالتحقق من شروط متعددة وتنفيذ أكواد مختلفة لأكثر من شرطين .
صيغة عبارة if…else المتداخلة :
كود:
if (testExpression1)
{
// statements to be executed if testExpression1 is true
}
else if(testExpression2)
{
// statements to be executed if testExpression1 is false and testExpression2 is true
}
else if (testExpression 3)
{
// statements to be executed if testExpression1 and testExpression2 is false and testExpression3 is true
}
.
.
else
{
// statements to be executed if all test expressions are false
}
• عبارة if…else if…else تسمح لك بتنفيذ بلوك كود من بين بلوكات الأكواد الكثيرة المختلفة . إذا كنت تختبر شرط لمتغير واحد فإنه من الأفضل استخدام عبارة switch . عبارة switch غالبا ما تكون أسرع ، وواضحة البناء ، وسهلة الفهم .

|