قبل البدء:
1. مستوى الدرس إبتدائي و متوسط
2. رقم السطر المستخدم(للإشارة) به إلى رقم سطر الشيفرة الموجود في صندوق الشيفرة و ليس إلى الأرقام الموجودة بالرسوم التوضيحيّة.
3. متوقعة الإلمام الإبتدائي المسبق بلغة ++C أو C لدى الدارس|الدارسة.
,.,.,.,.,.,.,.,.,.,,.
الكلمة continue:
الكلمة continue هي كلمة اساسية محجوزة في لغتي C و ++C. الكلمة continue في اللغة الطبيعية(الإنجليزية) تعني الفعل(إستمر)... ولكن ميكانيكية (آلية) هذه الكلمة في لغة ++C بالتحديد هي العوْدة أو القفز إلى الشرط الأساسي لحلقة التكرار مباشرة..
- for…
- while…
- do…while
تكون آلية هذه الكلمة عوْدة (رجوع) إلى الشرط الرئيسي لحلقة التكرار إذا أُستعملتْ مع الحلقة التكرارية for و الحلقة التكرارية while...أمّا بخصوص الحلقة التكرارية do…while فهي قفز(تخطّي) إلى الشرط الرئيسي...(لش نحكي كتير؟ :happy: ) نطبّق المثال التالي:
الشيفرة التالية تصف لنا آلية الكلمة continue على أنها عودة(رجوع) إلى الشرط.
- //ArabTeam2000 forum
- //By Raghad a.a 2008
- #include <iostream>
- using std::cin;
- using std::cout;
- using std::endl;
- int main()
- {
- int x = 0;
- while( x < 10) //The condition...
- {
- x++;
- continue; //return to the condition
- cout << "This will never be printed..." << endl;
- }
- return 0;
- }
بكل بساطة السطر (18) الذي يلي الكلمة continue لن يُطبع على الشاشة ابداً كما هو موضّح ضمنياً بالنص...لأن الكلمة ستعمل آلياً على الرجوع مرة اخرى للتحقق من الشرط الرئيسي بالأعلى نزولاً مرة أخرى داخل جسد الحلقة إلى أن تصطدم الشيفرة(البرنامج) مرة أخرى بالكلمة من جديد وهكذا إلى أن ينتهي تحقق الشرط و من ثَم الخروج من الحلقة كليّاً دون المرور على أي سطر(سطور) بعد الكلمة continue. راقبوا هذه الدوامة(الحلقة التكرارية) على الرسم التالي موضحةً بالسهوم:
ملاحظة1: كذلك هو الحال مع الحلقة التكرارية for….
طيب الآن نعمل تطبيق و نقوم بمراقبة آلية الكلمة continue مع الحلقة التكرارية do…while لنتعرّف على آلية القفز التخطّي...من الشيفرة التالية:
- //ArabTeam2000 forum
- //By Raghad a.a 2008
- #include <iostream>
- using std::cin;
- using std::cout;
- using std::endl;
- int main()
- {
- int x = 0;
- do
- {
- x++;
- continue;
- cout << "This will never be printed..." << endl;
- }while ( x < 10);
- return 0;
- }
من الشيفرة السابقة من السطر(13) حيثُ تبدأ الحلقة التكرارية do…while نزولاً لزيادة المتغير x بقيمة واحد..يصادف البرنامج كلمة continue ليقفز و يتخطّى إلى الشرط الموجود ببند while سطر (20) مباشرة بدون تنفيذ وطباعة السطر رقم (18) عند cout. نراقب معاً الرسمة التوضيحية التالية
ملاحظة2: العودة أو القفز بواسطة الأمر continue ليست فقط لسطر واحد بل لأي عدد من السطور..فهي إمّا عودة مباشرة أو قفزة مباشرة إلى بند الشرط The Condition مباشرة.
ملاحظة3: طبعاً الإستعمالات السابقة لـ continue كانت مجرد تمهيدية للوصول إلى معرفة آليتها و ليست طُرق نموذجية برمجية فعّالة ابداً...
,.,.,.,.,.,..,.,
مثال: طباعة الإعداد الفردية..
مثال تطبيقي نموذجي و نافع باستخدام الأمر أو الكلمة continue:
نموذجياً فإن الإستعمال لكلمة continue يكونُ من داخل العبارة الشرطية if statement داخل الحلقة التكرارية. عادةً يتم التحقق من شرط ما داخل الحلقة التكرارية فإن كان الشرط صائب true فسيكون من الضروري العودة أو القفز مباشرة إلى الشرط الرئيسي الخاص بالحلقة التكرارية ككل, تجاوزاً لكل سطر و أمر موجود بالحلقة التكرارية بعد الكلمة continue مباشرة او بعد الجملة الشرطية if statement المتضمنة للكلمة continue...الأمر بسيط..بعد دراسة الشيفرة التالية التي تعمل على طباعة مجموعة الأعداد الفرديّة المحصورة من 0 و 20...
- //ArabTeam2000 forum
- //By Raghad a.a 2008
- #include <iostream>
- using std::cin;
- using std::cout;
- using std::endl;
- int main()
- {
- int x = 0;
- while( x < 20)
- {
- x++;
- if( (x%2) == 0 )//Is it an even number?
- continue; /*Yes: so go back directly to the while condition
- and check it again*/
- cout << x << endl;/*The odd number will be printed,
- if the previous condition is false*/
- }
- return 0;
- }
لمحة على الشيفرة السابقة:
من المعروف حسابياً(رياضياً) أن قسمة أي عدد زوجي على 2 دائماً يكون الباقي منه 0, و قسمة أي عدد فردي على 2 الباقي منه دائماً 1(أكيد تتذكروا طريقة تحويل الأعداد من عشري إلى ثنائية بالقسمة إلى 2) !!
هذا هو الحال في بند الشرط if حيثُ يتم التحقق من ذلك...فإذا كان جواب الشرط صائب true (أي أن العدد بالفعل زوجي) فإن الكلمة continue ستقوم بدورها ناقلةً دورة البرنامج إلى رأس (او الشرط الرئيسي) الحلقة التكرارية while نزولاً على اوامر جسد الحلقة مرة أخرى... و هكذا حتى يكون جواب الشرط خاطيء false فبهذا يكون العدد فردي فيتم طباعته على الشاشة.
,.,.,.,.,.,.,.,.,.
المهم من الدرس هو معرفة آلية الكلمة continue, فأرجو من الله أن يكون الموضوع و الدرس واضح...لكم منّي اجمل الأمنيَات
اعداد و تقديم: اختكم المخلصة رغــد


