مضى على الشبكة و يوم من العطاء.

Day3-[tip3] -يوم[3] -فكرة[3]-الفرق بين حلقاتfor، while، و do-while واستخدام كل واحدة في السياق المناسب

MinaMina is verified member.

{ | مشرف قسم لغات البرمجة | }
.:: طاقم المشرفين ::.
.:: كاتب تقني ::.

السمعة:

بسم الله الرحمن الرحيم
سنتكلم اليوم وبشكل بسيط عن الفروقات بين أنواع للـ Loops الثلاث.
فكما نعلم أن loop تقوم بتكرار تنفيذ كود عدد مرات معين فإذا أردت طباعة الأرقام من 1 إلى غاية 100 في حالة عدم وجود loop ساضطر أن أُكرر العملية.

كود:
cout<<"1"<<endl;
cout<<"2"<<endl;
cout<<"3"<<endl;
.
.
.
cout<<"100";
لهذا جاء مفهوم loop ليختصر في كتابة الكود وليس التنفيذ , فنجد ثلاث أنواع وهي :
  • for loop
  • while loop
  • do while loop
متى نستعمل كل واحدة :
for loop :
إذا كان عدد التكرارات معلوم مسبقًا كما في حالتنا السابقة نحن نريد الطباعة من 1 الى 100 فنحن نعرف مسبقًا عدد التكرارات.

C++:
int i;
for(i=1;i<=100;i++){
    cout<<i<<endl;
}
while loop:
إذا كان عدد التكرار غير معلوم لكن للدخول في loop يتعلق مبدئيا بشرط أي أنني لن أدخل لل Loop إلا إذا تحقق هذا الشرط فما دام الشرط محقق
سأواصل التنفيذ

إذا كنت تبحث مثلًا عن قيمة معينة في جدول A , إذا وجدتها أرجع true وإذا لم تجدها أرجع false
صحيح أنك تعرف مسبقًا size of array ولا مانع من استخدام for(i=0;i<A.length;i++) , لكن تخيل أن القيمة في أول الجدول وطول الجدول 100 مع أنك وجدت الجواب في أول مرة إلا أنك ستضطر لقطع كامل الجدول بلا فائدة ! لأنك حددت loop بعدد تكرار وليس شرط ,الأفضل كمبرمج استعمال while في هذه الحالة لأننا في هذه الحالة سنختصر من حيث عدد المرات المنفذة وليس من حيث الكتابة فقط

كود:
int A[10],i  ;
for(i=0;i<10;i++){ //هنا فقط لملى الجدول بالقيم من 1 الى 10
 A[i]=i+1;
}
i=0; int x=11;
bool fond=false;
while(i<10&& ! found){
 if(A[i]==x){
 found=true;
 }
 i++;
}
do while loop:
هي تشبه while من ناحية عدم معرفة التكرارات مسبقًا , لكن الاختلاف بينهما أن while في حالة عدم تحقق الشرط أقل عدد للتنفيذ هو 0 لأنه إن لم يتحقق الشرط لن يدخل داخل loop , لكن do while أقل عدد للتنفيذ هو 1 حتى وإن لم يتحقق الشرط لأن شرط يأتي بالآخر
في حالة طلب منك التأكد أن المستخدم يدخل قيمة موجبة في هذه الحالة سنتعمل do while لأننا على الأقل سنحتاج لمرة واحدة كي نقرأ القيمة ونرى إن كانت موجبة أم لا

C++:
int val;
do{
    cout<<"Enter a positive value"<<endl;
    cin>>val;
}while(val<0)
فهنا نحن نريد أن ندخل قيمة موجبة فما دام القيمة سالبة لن نقبلها لذلك وضعنا (val<0 )
للفهم أكثر حاولوا في آخر مثال باستعمال while loop و في انتظار محاولاتكم 😁


جعلنا الله وإياكم ممن صدقوا فنالوا 🤍
 
بسم الله الرحمن الرحيم
سنتكلم اليوم وبشكل بسيط عن الفروق بين 3انواع لل Loops
فكما نعلم انا loop تقوم بتكرار تنفيذ كود عدد مرات معين فاذا اردت طباعة الارقام من 1الى غاية 100 في حالة عدم وجود loop ساظطر ان اكرر التعليمة

كود:
cout<<"1"<<endl;
cout<<"2"<<endl;
cout<<"3"<<endl;
.
.
.
cout<<"100";
لهاذا جاء مفهوم loop ليختصر في كتابة الكود وليس التنفيذ
فنجد ثلاث انواع وهي :
for loop
while loop
do while loop
متى نستعمل كل واحدة :
for loop :
اذا كان عدد التكرارات معلوم مسبقا في حالتنا السابقة نحن نريد الطباعة من 1 الى 100 فنحن نعرف مسبقا عدد التكرارات

C++:
int i;
for(i=1;i<=100;i++){
    cout<<i<<endl;
}
while loop:
اذا كان عدد التكرار غير معلوم لكن لدخول في loop يتعلق مبدئيا بشرط اي انني لن ادخل لل Loop الا اذا تحقق هذا الشرط فمادام الشرط محقق

سأواصل التنفيذ


اذا كنت تبحث مثلا عن قيمة معينة في جدولA اذا وجدتها ارجع true اذا لم تجدها ارجع false
صحيح انك تعرف مسبقا size of array ولا مانع من استخدام for(i=0;i<A.length;i++)
لكن تخيل ان القيمة في اول الجدول وطول الجدول 100 مع انك وجدت الجواب في اول مرة الا انك ستظطر لقطع كامل الجدول بلا فائدة !
لانك حددت loop بعدد تكرار وليس شرط
الافضل كمبرمج استعمال while في هاذه الحالة لاننا في هذه الحالة سنختصر من حيث عدد المرات المنفذة وليس من حيث الكتابة فقط

كود:
int A[10],i  ;
for(i=0;i<10;i++){ //هنا فقط لملى الجدول بالقيم من 1 الى 10
 A[i]=i+1;
}
i=0; int x=11;
bool fond=false;
while(i<10&& ! found){
 if(A[i]==x){
 found=true;
 }
 i++;
}
do while loop:
هي تشبه while من ناحية عد معرفة التكرارات مسبقا
لكن الاختلاف بينهما ان while في حالة عدم تحقق الشرط اقل عدد للتنفيذ هو 0 لانه ان لم يتحقق الشرط لن يدخل داخل loop
لكن do while اقل عدد للتنفيذ هوا 1 حتى وان لم يتحقق الشرط لان شرط ياتي بالاخر
في حالة طلب منك التاكد ان المستخدم يدخل قيمة موجبة في هذه الحالة سنتعمل do while لاننا على الاقل سنحتاج لمرة واحدة ان نقرا القيمة ونرى ان كانت موجبة ام لا

C++:
int val;
do{
    cout<<"Enter a positive value"<<endl;
    cin>>val;
}while(val<0)
;
فهنا نحن نريد ان ندخل قيمة موجبة فمادام القيمة سالبة لن نقبلها لذلك وضعنا (val<0 )

للفهم اكثر حاولوا في اخر مثال باستعمال while loop و في انتظار محاولاتكم 😁
جعلنا الله واياكم ممن صدقوا فنالوا 🤍
بارك الله فيك يا مينا على هذا الطرح الرائع
ننتظر جديدك دائما باذن الله
 
  • Love
التفاعلات: Mina
حاولوا في آخر مثال باستعمال while loop
C++:
     int number =0;
    cout<<"insert positive value\n";
    cin>>number;
    while(number>0)
    {
        cout<<"insert positive value\n";
        cin>>number;
    }
    cout<<number<<"\n";

مع اني زمان ما كتبت c++ بس رجعتيني لورا والله 😅
يعطيكِ ألف عافية
 
  • Love
التفاعلات: Mina
C++:
int val;
do{
    cout<<"Enter a positive value"<<endl;
    cin>>val;
}while(val<0)

للفهم أكثر حاولوا في آخر مثال باستعمال while loop و في انتظار محاولاتكم 😁
جزاكِ الله خيرا وشكرا للطرح وفي انتظار الجديد 🔥
C++:
int  main()
{
    int value;
    cin >> value;
    while(value < 0 )
    {
        cout<<"Enter a positive value"<<endl;
         cin >> value;
    }
}
 
  • Love
التفاعلات: Mina
جزاك الله خير على هذا الشرح الرائع، استمري
 
  • Love
التفاعلات: Mina

آخر المشاركات

فانوس

رمضان
عودة
أعلى