 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:333
|
|
28-05-2017, 11:26 AM
المشاركة 2
|
|
عبارة do – while :
هذه العبارات هى اختلاف مفيد لعبارة while . الشكل العام لعبارة do – while يكون كما يلى
كود:
do
{
statements;
} while(expression);
هنا ، يتم تنفيذ العبارات statements طالما أن التعبير expression يكون true . التعبير expression عادة يحتوى على عبارات منطقية وعبارات علاقات .

فى المثال التالى ، يتم إنهاء الحلقة بعد التكرار 10 مرات
كود:
i = 0;
do
{
statement;
i++;
} while(I < 10);
لاحظ ، مرة أخرى ، أن الشرط الذى يحافظ على الحلقة يتم تغيره داخل الحلقة ، بحيث يتم إنهاء الحلقة بعد العدد المطلوب من التكرارات .
هناك اختلاف بين عبارة while وعبارة do – while . العبارات statements داخل حلقة while قد لا يتم تنفيذها أبدا إذا كان الشرط false . على الجانب الآخر ، العبارات statements داخل حلقة do – while يتم تنفيذها "مرة واحدة" على على الأقل ، وذلك لأنه يتم اختبار الشرط عند نهاية الحلقة .
الأمثلة التالية توضح كيفية بناء حلقة do – while واستخدامها فى البرامج :
مثال 1 :
اكتب برنامج للإعداد الابتدائى لمصفوفة أعداد صحيحة integer تسمى MyArray ، بأحاد “1s” . افترض أن المصفوفة بها 100 عنصر .
الحل : البرنامج المطلوب يكون كما يلى :
كود:
void main()
{
unsigned char i;
int MyArray[100];
i = 0;
do
{
MyArray[i] = 1;
i++;
} while(i < 100);
}
مثال 2 :
اكتب كود حلقة باستخدام عبارة do – while لنسخ سلسلة string تسمى “B” إلى سلسلة أخرى تسمى “A” .
الحل :
تذكر أن السلسلة هى مصفوفة أحرف تنتهى بحرف NULL(\0) . حلقة do – while أدناه سوف تنسخ محتويات السلسلة B إلى السلسلة A ، بما فى ذلك حرف الانتهاء NULL .
لاحظ أنه يتم تزايد “i” بعد أن يتم استخدام قيمتها كمرجع للسلسلة B .
كود:
i = 0;
do
{
A[i] = B[i];
} while(B[i++] != ‘\0’);
عند استخدام عبارة do – while ، من المهم التأكد من أن الشرظ الذى يحافظ على الحلقة يتم تغيره داخل الحلقة ، وإلا يتم تشكيل حلقة لانهائية . فيما يلى البرنامج أعلاه مكتوب بخطأ والذى يؤدى إلى عدم إنتهاء الحلقة مطلقا . البرنامج يتكرر فى الإعداد الابتدائى لعناصر المصفوفة بالآحاد :
كود:
void main()
{
unsigned char i;
int MyArray[100];
i = 0;
do
{
MyArray[i] = 1;
} while(I < 100);
}
• احيانا يكون من الضرورى إنشاء حلقات لانهائية . يمكن تحقيق ذلك بسهولة باستخدام عبارة do – while كما يلى :
كود:
do
{
statements;
} while(1);
مثال :
اكتب برنامج لضرب مصفوفتان أعداد صحيحة اسمهما X و Y كل منهما له 10 عناصر ، وخزن المجموع فى متغير نوع العدد الصحيح والمسمى Sum .
الحل :
البرنامج المطلوب يكون بالشكل التالى :
كود:
void main()
{
int X[10], Y[10], Sum;
unsigned char I = 0;
Sum = 0;
do
{
Sum = Sum + X[i]*Y[i];
i++;
} while(I < 10);
}
|