recent
أخبار ساخنة

الحلقات Loops في لغة ++C الدرس |6|

الصفحة الرئيسية
الحلقات في لغة سي بلس بلس

الحلقات Loops في C++

الحلقات Loops يتم إستخدامها لهدف تكرار كود ما عدة مرات.

أي كود نُريده أن يتم تنفيذه عدة مرات نقوم بكتابته في داخل حلقة Loop فتقوم هذه الحلقة بإعادة تنفيذ الكود ضمن شروط معينة يقوم المبرمج بتحديدها.الحلقات Loops في لغة ++C الدرس |6|


أنواع الحلقات في C++

  1. حلقة For Loop.
  2. حلقة While Loop.
  3. حلقة Do While Loop.

حلقة For Loop في C++

حلقة For Loop هي عبارة عن شرط يُستخدَم لتكرار شيئ ما عدة مرات وعادتاً ما يحتوي على قيمة نهائية.

طريقة إستخدام حلقة For Loop

for ( initial value ; coalition ; increment )
{
	Statements;
}

حيث أن:

  • initial value القيمة البدائية بداية الدورة.
  • coalition هي شرط النهاية الذي تنتهي به الدورة.
  • increment هي فرق المتغير بكل دورة مثلاً زيادة 1 بكل دورة.

مثال 1

#include <iostream>
using namespace std;
int main()
{
    int i;
    for(i=1; i<10; i++)
    cout << "Programmer Tech" << endl;
}

وعند تشغيل هذا الكود سوف تكون نتيجته هي

Programmer Tech
Programmer Tech
Programmer Tech
Programmer Tech
Programmer Tech
Programmer Tech
Programmer Tech
Programmer Tech
Programmer Tech

نلاحظ أنه طَبَعَ لنا الكلمة 9 مرات لأننا بدأنا من الرقم 1.


مثال 2

#include <iostream>
using namespace std;
int main()
{
    int a = 0;
    for(;a < 10;)
    {
        cout << a << endl;
        a++;
    }
}

نتيجة هذا الكود ستكون

0
1
2
3
4
5
6
7
8
9

نستطيع اختصار الكود السابق بسطر واحد كالتالي

#include <iostream>
using namespace std;
int main()
{
    for (int a = 0; a < 10; a++)
    {
        cout << a << endl;
    }
}


حلقة While Loop في C++

حلقة While Loop تتكوَّن من شرط واحد فقط إذا كان هذا الشرط صحيح يبقى بداخل الحلقة أما إذا كان خاطئ سوف يتوقف عن الدورة ويكون المتغير خارج الأقواس.

طريقة إستخدام حلقة While Loop

while( condition )
{
    / statements
    increment ;
}

مثال 3

#include <iostream>
using namespace std;
int main(){
	int x = 0;
	while ( x < 10 ) 
	{
		cout << "Programmer Tech" << endl;
		x++;
	}
}

أنشأنا متغير x خارج الأقواس وعيننا له قيمة 0 ووضعنا حلقة وشرط إذا كان x أصغر من 10 يعني. ما دامت أصغر من الرقم 10 إطبع لنا على الشاشة كلمة programmer Tech عشر مرات.

وكتبنا ++x و التعليق x=x+1, في كل دورة سوف يتحقق ويُضيف لها 1 إلى أن تُطبَع عشر مرات.

وعند تشغيل الكود سوف تكون نتيجته كما يلي:

Programmer Tech
Programmer Tech
Programmer Tech
Programmer Tech
Programmer Tech
Programmer Tech
Programmer Tech
Programmer Tech
Programmer Tech
Programmer Tech

حلقة Do While Loop في C++

حلقة Do While Loop نستخدمها إذا كنا نُريد تنفيذ الكود عدة مرات, ولكننا لا نعرف كم مرة في التحديد لأننا نريد إيقاف التنفيذ إذا تحقق شرط معين.

هذه الحلقة تتوقف عن تكرار نفسها إذا تحقق الشرط الذي وضعناه لها.

طريقة إستخدام حلقة Do While Loop

do
{
statement
}while (condition);

يتم إستخدام do while لأجل تكرار جزء من البرنامج المُستخدَم عدة مرات.

إذا كان رقم التكرار غير ثابت فيلزم علينا إستخدام الحلقة مرة واحدة على الأقل.

و الأفضل هنا إستخدام هذه الحلقة do while, ويتم تنفيذ التكرار مرة على الأقل لأنه يتم التحقق من الحالة أثناء الحلقة.


مثال 4

#include <iostream>
using namespace std;
int main(){
int x = 0;
do{
    cout << "Saja" << endl;
    x++;
}while(x<5);
return 0;
}

في المثال عيننا قيمة 0 أي يبدأ العد من الصفر و كتبنا الـ do ثم وضعنا أمر الطباعة للكلمة Saja.

و أعطينا ++x لأجل الزيادة بواحد في كل دورة ووضعنا شرط الـ while إذا كانت x أصغر من 5 يكمل الدورة للدورة التي تليها وهكذا سوف يطبع لنا الجمله خمس مرات.

عند تشغيل هذا البرنامج سنحصل على النتيجة

Saja
Saja
Saja
Saja
Saja

 

مثال 5

#include <iostream>
using namespace std;
int main(){
	int x = 1;
		do{
			cout << x << endl;
			x++;
		}while(x<=7);
return 0;
}

أنشأنا متغير عددي وهو x و قيمته هي 1 ثم فتحنا حلقة do و كتبنا بها إطبع قيمة x و قم بالزيادة عليها 1 في كل دورة.

ثم وضعنا شرط بعد كلمة while وهو إذا كانت x أصغر أو يساوي 7 نفذ الأكواد

عند تشغيل ستكون النتيجة

1
2
3
4
5
6
7

مثال 6

#include <iostream>
using namespace std;
int main(){
    int x = 1;
        do{
            int j = 1;
            do{
                cout<<x<<"\n";
                j++;

            }while (j <= 3);
            x++;
        }while(x <= 3);
}

عند تشغيل الكود سوف تكون النتيجة

1
1
1
1
2
2
2
3
3
3


الفرق بين While و Do While

  • الـ while تختبر الشرط في البداية ثم تنفذه إذا تحقق ذلك, ويمكن أن لا يتنفذ شيئ.
  • الـ do while تتنفذ اولاً ثم تختبِر الشرط بإستمرار وقد يكون لها تنفيذ واحد على الأقل.


جمل التحكم مع الحلقات

جمل التحكم Control Statements نستخدمها للتحكم في سير تنفيذ الحلقات, و أيضاً مع جملة الشرط switch.

يوجد نوعين من جمل التحكم في الحلقات التكرارية وهما:

  1. Break Statement.
  2. Continue Statement.


جملة break في لغة C++

جملة break تكون وظيفتها إيقاف حلقة التكرار عند تحقق شرط معين أو عدة شروط معينة وعند تنفيذها يتم إيقاف الحلقة (أي الخروج من loop).

بمجرد أن تتنفذ جملة break فإنها توقف الـ scope بأكمله و تخرج منه, و تمسحه من داخل الذاكرة ثم تنتقل للكود الذي يليه في البرنامج.

طريقة تعريف جملة break

تتألف هذه الجملة من أمر واحد و يكتب على سطر منفرد.

break;

مثال 7

#include <iostream>
using namespace std;
int main(){
    int count;
    for (count=1;count<=10;count++)
    {
        if (count==5)
            break;
        cout<<count<<"";
    }
    cout<<"\n break out of the loop"<<count<<endl;
    return 0;
}

قمنا بإنشاء متغير عددي وهو count و أنشأنا حلقة for تكرارية و أعطينا قيمة للمتغير count وهي 1 أي من الرقم 1 يبدأ العداد.

وقلنا في حال كانت قيمة العداد اصغر أو يساوي 10 ثم بتزويد واحد في كل دورة بواسطة count++.

ووضعنا شرط إذا قيمة العداد هي 5 قم بإيقاف الحلقة التكرارية فوراً, أي عندما يصل إلى الرقم 5 يتم إيقاف الحلقة وطباعة الأرقام لـ count.

وبعده طلبنا طباعة جملة و يكتب بها أنه تم إيقاف اللوب عند الرقم الذي يتوقف عنده العداد.

عند تشغيل البرنامج ستكون النتيجة

1234
break out of the loop5

كما لاحظنا بأن عبارة break تتنفذ اذا الشرط كان صحيحاً أي إذا كان count يساوي 5 لن يطبع شيئ بعدها وسيتوقف و يخرج عن اللوب.


مثال 8

#include <iostream>
using namespace std;
int main(){
    for (int o=0; o<10 ; o++){
        if (o==5) {
            break;
        }
        cout << o << endl;
    }
    return 0;
}

في هذا المثال قلنا له إطبع من 1 إلى 10 و طالما o أقل من 10 إبقى زد 1 في كل عملية و عندما وصل إلى 5 توقف لأننا وضعنا له break ليتوقف و عرض لنا العد من 0 حتى 4.

عند تشغيله سنحصل على الناتج

0
1
2
3
4


جملة continue في لغة C++

جملة continue تقوم بالتنقل من الحلقة الحالية الذي نعمل بها إلى الحلقة التالية دون اكمال تنفيذ ما تتظمنه الحلقة الحالية من اكواد.

نستخدم الجملة continue لتجاوز تنفيذ كود معين في الحلقة, إذاً نستخدمها لتجاوز جزء من كود الـ scope.

و نستخدمها تحديداً لإيقاف الدورة الحالية و الإنتقال إلى الدورة التالية في الحلقة.

طريقة تعريف جملة continue

تتألف هذه الجملة من أمر واحد و يكتب على سطر منفرد.

continue;


مثال 9

#include <iostream>
using namespace std;
int main(){
    int count;
    for (count=1;count<=10;count++)
    {
        if (count==5)
            continue;
        cout<<count<<"";
    }
    cout<<"\n break out of the loop"<<count<<endl;
    return 0;
}

قمنا بإنشاء متغير عددي وهو count و أنشأنا حلقة for تكرارية و أعطينا قيمة للمتغير count وهي 1 أي من الرقم 1 يبدأ العداد.

وقلنا في حال كانت قيمة العداد اصغر أو يساوي 10 ثم بتزويد واحد في كل دورة بواسطة count++.

ووضعنا شرط إذا قيمة العداد وصلت إلى 5 قم بتجاهل الرقم 5 و أكمل حتى النهاية, أي عندما يصل إلى الرقم 5 يتم تجاهله و إكمال اللوب وطباعة الأرقام لـ count.

وبعده طلبنا طباعة جملة و يكتب بها أنه تم إيقاف اللوب عند الرقم الذي يتوقف عنده العداد.

عند تشغيل البرنامج ستكون النتيجة

1234678910
break out of the loop11

هذا نفس المثال الأول في break نلاحظ عندما وضعنا continue تجاهل لنا الرقم 5 و اكمل الدورة حتى انتهى منها.


مثال 10

#include <iostream>
using namespace std;
int main(){
    for (int o=0; o<10 ; o++){
        if (o==5) {
            continue;
        }
        cout << o << endl;
    }
    return 0;
}

في هذا المثال قلنا له إطبع من 1 إلى 10 و طالما o أقل من 10 إبقى زد 1 في كل عملية و عندما وصل إلى 5 تجاهله لأننا وضعنا له continue, و عرض لنا العداد من 0 حتى 9 و تجاهل الرقم 5.

وعند تشغيل الكود ستكون النتيجة

0
1
2
3
4
6
7
8
9

 

هذا مفهوم الحلقات التكرارية و جمل التحكم بإختصار, في حال أعجبكم الدرس فضلاً إدعمنا بمشاركته على وسائل التواصل

google-playkhamsatmostaqltradent