#include<iostream.h>
void main ()
{
int i=0;
while(i<5)
{
if(i<2)
{
i+=2;
continue;
}
else cout<<++i<<endl;
cout<<"b"<<endl;
}
}ممكن شرح عمل البرنامج
#include<iostream.h>
void main ()
{
int i=0;
while(i<5)
{
if(i<2)
{
i+=2;
continue;
}
else cout<<++i<<endl;
cout<<"b"<<endl;
}
}ممكن شرح عمل البرنامج
تم تعديل هذه المشاركة بواسطة cold0zero في 18 ديسمبر 2003 في 04:09
هلا أخوي ،، :)
بالنسبة للبرنامج ،،
عندنا هذه الأعداد فرضاً ،، مثل ما هو بالبرنامج ( 0 ، 1 ، 2 ، 3 ، 4 )
فهو يقوم بتنفيذ الآتي :
1 - إذا كان العدد أقل من 2 ،،
يزيد على العدد 2 و يكمل البرنامج .
2 - يزيد على العدد 1 ،، ثم يطبع الناتج ،،
ثم يطبع الحرف ( b ) .
-0-0-0-0-0-0-0-0-0-0-0-
النتيجة :
3
b
4
b
5
b
-0-0-0-0-0-0-0-0-0-0-0-
أما بالنسبة للكود ،، فلحظة و راجعة بها بإذن الله ،،
أختك ،،
بوجه عام :
- عندنا حلقة تكرارية ( while-loop )
مطلوب منها تنفيذ عملية على مجموعة أعداد .
- بداخل الحلقة التكرارية يوجد شرط للتنفيذ ( if - else )
- سواءً تحقق الشرط أم لم يتحقق ،، نطبع الحرف ( b )
- بما أن جملة ( continue ) موجودة بجملة الشرط ( if ) ،،
إذن : راح نرجع للحلقة التكرارية بدون المرور على الجمل اللي تحت ( if ).
يعني ،، ماراح نطبع الحرف ( b ) ،، إن تحقق الشرط ،،
لاحظ معي أخي الكريم ،،
بأن جملة الـ ( if ) إذا تحققت ،، فراح نقوم بتنفيذ العمليات التابعة لها ،،
و التي تبدأ بفتحة القوس ( } ) و تنتهي بإغلاق القوس ( { )
و بداخلها عمليتين ،،
و لو ما كانت لها أقواس ،، فراح ننفذ أول أمر يتبع الـ ( if ) فقط ،،
فرضاً ،، العدد صفر ،، أقل من العدد 2 ،، إذن تحقق الشرط ،،
فيقوم بجمع 2 عليها ( 0 + 2 = 2 ) ،،
و راح يشوف كلمة ( continue ) ،، يعني خلاااااص ،،
لاتنفذ الأوامر اللي بعدها و ارجع للحلقة التكرارية ،،
- إذا ما دخل للجملة الشرطية ( if ) فراح يدخل لجملة الـ ( else )
و ينفذ اللي بأول سطر فقط ( زيادة بالعدد + طباعة ) ،، لعدم وجود الأقواس ،،
ثم ،، يطبع الحرف ( b )
وماراح يخرج من الحلقة ،، حتى نصل للعدد 5 ،،
- و على فكرة ،، الأمر ( continue ) أو ( break )
تجي عاااادة أو دائماً ،،
بداخل الجمل الشرطية التي بداخل الحلقة التكرارية ،،
مع وجود احتلاف بسيط ما بين ( continue ) و ( break )
و يارب أكون قدرت أفيدك بشئ ،، :)
شرح رائع أختي العصامية
الفكرة و صلت و شكرا على سرعة ردك و استجابتك
بس سؤال مرة تاني
طيب بالبداية كانت i تساوي الصفر و فاتت على حلقة if و صارت 2
وبعدين contiune شو عملت بظن هون السؤال يعني دائما شو هو عمل continue
العصاميه كتب:- بما أن جملة ( continue ) موجودة بجملة الشرط ( if ) ،،إذن : راح نرجع للحلقة التكرارية بدون المرور على الجمل اللي تحت ( if ).
يعني ،، ماراح نطبع الحرف ( b ) ،، إن تحقق الشرط ،،
-0-0-0-0-
فرضاً ،، العدد صفر ،، أقل من العدد 2 ،، إذن تحقق الشرط ،،
فيقوم بجمع 2 عليها ( 0 + 2 = 2 ) ،،
و راح يشوف كلمة ( continue ) ،، يعني خلاااااص ،،
لاتنفذ الأوامر اللي بعدها و ارجع للحلقة التكرارية ،،
يعني ياخوي ،، :)
بياخد المتغير i و اللي قيمته تساوي صفر ، و يدخل للشرط if ،،،
و يجمع عليها 2 ،،
فتتغير قيمة ( i ) و تساوي 2 ،،
و بعدها ،، تجي وظيفة الـ continue ،،
و هي تقول للـ compiler ،، :
لا تخرج من الحلقة while
و لا تكمل بعد مانفذت الشرط ،،
لازم ألحين ترجع و تدخل الحلقة التكرارية التالية ،،
يعني لو هناك 10 أوامر بداخل الحلقة التكرارية و بعد الأمر if فماراح تتحقق ،،
ولا راح يشوفها و يمر عليها الـ compiler بسبب وجود الـ continue ،،
آسفة ،، و شكلي لخبطتك معاي ،، :(
-0-0-0-
ياليت لو ماوضحت لك بعد ،،
أحد من الأخوان اللي عنده أسلوب بالشرح ،، يشرحها لك ،،
أختك ،، :)
تم تعديل هذه المشاركة بواسطة العصاميه في 19 ديسمبر 2003 في 14:58
أختي الكريمة اللي فهمتوا أنا الأن هو مايلي ياريت تشوفي اذا صح
بالبداية i تساوي الصفر تدخل حلقة وايل و من ثم حلقة if في هذي الحلقة يتم زيادة قيمة i الى 2 و الcontinue لا تسمح بتنفيذ الأوامر اللي بعد if و اللي هي طبعاة العبارة صح
بعدين تجي تختبر شرط if بعد ما أصبحت I تساوي 2 تطلع من الحلقة و ترجع لحلقة وايل و اللي بدورها تحتوي بقية شرط الجلمة if/else و هي ستقوم بالبداية بزيادة قيمة i و طبعاتها و طباعة الجملة اللي تحتها و هيك لوقت يختل شرط حلقة while صح الكلام
هلا أخوي ،،
و الله طلع شرحك أفضل من شرحي ،، ماشاء الله عليك ،، :)
و هو بالزبط مثل ما قلت ،،
و للتأكيد ،، بأفرض إنه عندنا جملتين بعد continue ،،
cout<< ( i* 3 );
cout<< " HELLO ";
فماراح تتنفذ لنا أبداً ،،
مع إنها داخل الشرط ،، if ،،
#include<iostream.h>
void main ()
{
int i=0;
while(i<5)
{
if(i<2)
{
i+=2;
continue;
cout<< ( i* 3 );
cout<< " HELLO ";
}
else cout<<++i<<endl;
cout<<"b"<<endl;
}
}و تحية لك أخي الكريم ،،
و الحمد لله إنها وصلت ،، :)
و أي استفسار ،، نحن بالخدمة ،
تم تعديل هذه المشاركة بواسطة العصاميه في 19 ديسمبر 2003 في 19:22
شكرا الك أنتي اللي تعبتي بالشرح
هذا الموضوع مغلق.