السلام عليكم
ما معنى هذا التعبير في لغة سي
while(x>y>5) do
}
x=x+2
{
وشكرا لكم
السلام عليكم
ما معنى هذا التعبير في لغة سي
while(x>y>5) do
}
x=x+2
{
وشكرا لكم
اخي الكريم
الذي اعرفه ان الجملة التكرارية while لها نمطين في الاستخدام
النمط الاول بدون عبارة do وهي كالتالي:
while(شرط)
{
اذا تحقق الشرط يتم تنفيذ الاوامر الموجودة بين القوسين بشكل تكراري الى يكون الشرط غير متحقق
}النمط الاخر بعبارة do :
do
{
مجموعة من الاوامر
}while(شرط)الفرق بين النمطين
ان النمط الاول يختبر الشرط واذا كان متحقق ينفذ مجموعة الاوامر بشكل تكراري حتى يكون الشرط غير متحقق
اما النمط الثاني ينفذ مجموعة الاوامر ثم يختبر الشرط واذا كان متحقق يعاود تنفيذ الاوامر
النمطين السابقين يعبران عن الصيغ القياسية للحلقة while
لذلك ساجيبك من خلال النمطين الذين تكلمت عنهما
لو قلت :
while(x>y>5)
}
x=x+2
{في هذه الحلقة يختبر شرط x>y>5 فاذا كان متحقق يتم جمع العدد2 على قيمة x القديمة ويتم تكرار هذه العملية مادام ان الشرط متحقق
النمط الاخر هو نفس عمل ماسبق ولكن مع اختلاف بسيط في هيكلية العمل
do } x=x+2 }while(x>y>5)
في هذه الحالة ينفذ الامر ثم يختبر الشرط فاذا كان متحقق اعاد تنفيذ الامر الى ان يكون الشرط غير متحقق
اتمنى اكون قد وفقت في ايصال ماكان غامضا عليك
ولعل تكون هناك اضافات اخرى من بقية الاعضاء
اخوك
فهد
تم تعديل هذه المشاركة بواسطة فهد علي في 29 يناير 2005 في 21:48
بارك الله فيك فهد علي .
إضافة بسيطة و تعليق: ;)
الفرق بين الصيغتين هو أن:
- الأولى , يعني wihile do تقوم بالتحقق من الشرط أولا , فإذا كان صحيحا فإن جسم هذه الحلقة ينفذ, من بدايته إلى نهايتهو أي جميع التعليمات ما بين { و }, تم نعاود الكرة مرة أخرى و نتحق من الشرط حتى يصبح الشرط خاطئ.
-الثانية, do while, فإننا نقوم بتنفيذ نص الحلقة أولا ثم نتحقق من الشرط, إن كان صحيحا عاودنا تنفيذ الحلقة’ وإن كان الشرط خاطئ فإننا ننتهي من الحلقة و ننفذ التعليمات التي تليها.
* نلاحظ أن While do قد لا ينفذ نص حلقتها مطلقا في حالة ما إذا كان الشرط من أوله خاطئ.
*أما Do while فإن نص حلقتها ينفذ على الأقل مرة واحدة و إن كان الشرط من أوله خاطئ.
هذا هو الفرق في طريقة استعمال هذه الصيغتين بالضبط.
ملاحظة أخرى: هذه الطريقة في كتابة الشرط x>y>5 تبدو غير واضحة بالنسبة للكومبايلر و يجب كتابتها بطريقة واضحة لاتربك Compiler في قراءتها: (x>y) && (y>5).
لأن المحرر يعبر عن TRue ب 1 و عن False ب 0. , وعند قرائته للشرط المركب من شرطين ,فإنه يقوم بتحقق من الشرط الأول عن اليسار, أي هل x>y, فإن تحقق الشرط فإنه يعوضها ب 1 فيصبح الشرط اإجمالي هو 1>5 (وهو خطء), و إن لم يتحقق فسيعوض x>y ب 0, و ينتج عنه أن الصيغة النهائية ستكون 0>5 (و هي أيضا خطأ). :o مما يدل على أن هذه الحلقة لن تنفذ إطلاقا فشرطها دائما خطء كيفما كانت قيم x أو y.
(h)
تم تعديل هذه المشاركة بواسطة ikossan في 31 يناير 2005 في 04:09
سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين
يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.
اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.
الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.
إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.
و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله
أخوكم مراد
هذا الموضوع مغلق.