حلقات التكرار Loop Statements في #C

مفهوم حلقات التكرار loops طريقة بناء الجملة التكرار المتوفرة في #C وهي while, do...while و for وشرح طريقة استخدام break و continue مع التكرار

جُمل التحكم Control Statement جزء 3
جُمل التكرار loop statements

من جُمل التحكم حلقات التكرار التي تعتبر أحد الأدوات الأساسية في عالم البرمجة… فماذا نعني بحلقة التكرار في البرمجة...!! وما أنواع جُمل التكرار Loop المتوفرة في لغة سي شارب؟!

حلقات التكرار Loops Statements في #C

تُعتبر حلقات التكرار أحد الأدوات الأساسية في عالم البرمجة. فهي تمثل طريقة فعّالة لتنفيذ سلسلة من العمليات المتكررة بطريقة مُنظمة ومنطقية. تعتبر حلقات التكرار جزءًا أساسيًا من غالبية لغات البرمجة المنتشرة، في هذا المقال سوف نتكلم أحد جُمل التحكم في البرمجة وهي حلقات التكرار، وعن أنواع حلقات التكرار في لغة C# . لنبدأ…

في هذا المقال نتعرف على :



حلقات التكرار Loops في البرمجة

في البرمجة حلقة التكرار هي فكرة برمجة أساسية من أساسيات البرمجة و تُستخدم بشكل شائع في كتابة البرامج. و تعتبر حلقات التكرار من آليات البرمجة القوية التي تُسهم في زيادة كفاءة وإنتاجية المطورين. فهي تتيح للمبرمجين تنفيذ العمليات المتكررة بشكل أكثر فعالية وسلاسة، وتقلل من الجهد المبذول والأخطاء البشرية المحتملة. بفضل حلقات التكرار، يمكن للمبرمجين التعامل مع مجموعة كبيرة من البيانات أو تنفيذ سلسلة من العمليات بكل سهولة ويسر.

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

أي أن حلقات التكرار هي سلسلة من التعليمات التي تتكرر باستمرار حتى يتم الوصول إلى حالة معينة. في العادة ، يتم إجراء عملية معينة، مثل الحصول على عنصر من البيانات أو تغييره ، ثم يتم التحقق من بعض الشروط مثل ما إذا كان العداد قد وصل إلى الرقم المحدد. إذا لم يحدث ذلك، فإن التعليمات التالية في التسلسل هي تعليمات للعودة إلى التعليمات الأولى في التسلسل وتكرار التسلسل. و إذا تم الوصول إلى الشرط ، فإن التنفيذ هنا سيتوقف عن تنفيذ الحلقة وسيكمل تنفيذ تسلسل البرنامج خارج الحلقة .

ويوضح الشكل التالي تسلسل عملية حلقة التكرار loop :

حلقات التكرار Loops في البرمجة

وتأتي حلقات التكرار في أشكال متعددة، مثل حلقة "for"، وحلقة "while"، وحلقة "do-while". تختلف هذه الأشكال في طريقة تنفيذها والشروط التي تتحقق لاستمرار التكرار. يمكن للمبرمجين اختيار النوع المناسب من حلقة التكرار بناءً على حاجاتهم ومتطلبات المشروع.

ويمكن أن تكون الحلقة لانهائية وهي الحلقة التي تفتقر إلى خروج فعال وتستمر في التنفيذ بشكل لانهائي. وهذا نتيجة لخطأ في الشرط ويتسبب بإنهاء البرنامج بخطأ أو حتى يقع حدث آخر (مثل إنهاء البرنامج تلقائيًا بعد فترة زمنية معينة).



حلقات التكرار في لغة C#

التكرار ينعي أن سلسلة من تعليمات البرمجة التي تكرر عدد معين من المرات حلقة التكرار هي تعليمة البرمجة التي تعلن عن وجود حلقة تكرار وتوفر  C#  ثلاثة أشكال من حلقات التكرار وهي :


وأسلوب التكرار للحلقة يختلف فإما تكون:

  • تكرار مضبوط (محدود) Counter-Controlled Repetition.
  • أو تكرار المتحكم (غير محدود) Sentinel-Controlled Repetition.

التكرار المضبوط (محدود) Counter-Controlled Repetition

وهو التكرار الذي يكون له عدد ثابت من دورات تنفيذ الحلقة loop ويتطلب التكرار المضبوط اساسيات تعرف بـ Essentials of Counter-Controlled Repetition وهي الآتي :

  • شرط استمرار التنفيذ التكرار وهو شرط يختبر في كل دورة للتكرار قيمة متغير التحكم.
  • متغير التحكم ( متغير الحلقة) وهو المتغير الذي يقوم الشرط التكرار باختبار قيمة في كل دورة للتكرار هذا المتغير لابد من أن يعطى قيمة أولية.
  • مقدار التغير في قيمة متغير التحكم وهو التعبير البرمجي الذي يغير قيمة متغير التحكم لكل دورة.

سنتعرف فيما يلي على طريقة كتابة جُمل التكرار في C# وتمثل الامثلة المستخدمة معها التكرار المحدود…


حلقة التكرار While في C#

من حلقات التكرار التي تتوفر في لغة سي شارب حلقة التكرار while وفيها تستخدم الكلمة المحجوزة while للإعلان عن حلقة التكرار ثم الأقواس التي تحتوي شرط الحلقة والصيغة العامة لحقلة تكرار While هي:

while ( booleanExpression )
  statement

وهنا مثال يوضح طريقة عمل حلقة التكرار while في سي شارب في المثال سنقوم بعمل حلقة تكرار لطباعة الأرقام من 0 الى 10 :

int i = 0;
while (i <= 10)
{
Console.WriteLine(i);
i++;
}

(i <= 10) هو شرط التكرار حيث i هو متغير التحكم هنا و i++ هو التعبير المسؤول عن التغير في قيمة i .


حلقة التكرار do..while

من حلقات التكرار المتوفرة في لغة سي شارب هي حلقة التكرار do…while وتستخدم معها الكلمتين المحجوزتين do and while للإعلان عن حلقة تكرار من نوع do…while hgav' والصيغة العامة لحلقة التكرار do…while تكون:

do {
statement
} while ( booleanExpression );

وهنا مثال لطريقة تنفيذ حلقة التكرار do…while في لغة C# .


int i = 0;
do {
Console.WriteLine(i);
i++;
} while (i <= 10);

نلاحظ في المثال ان فى حلقة التكرار while يتم التحقق من الشرط قبل تنفيذ تعليمات الحلقة ولكن مع حلقة التكرار do…while يتم التحقق من الشرط بعد تنفيذ تعليمات الحلقة لأول دورة للحلقة أي أن في do…while سيتم تنفيذ تعليمات الـ loop لمرة واحدة على الأقل


حلقة التكرار for في C#

وتدعم لغة سي شارب حلقة التكرار for التي تعتبر for أكثر حلقات التكرار استخداماً خصوصاً مع المصفوفات Array حيث يمكننا مع for الإعلان عن متغير التحكم عند الإعلان جملة for مما يجعل العمل مع الحلقات التكرارية المتداخلة أفضل وتستخدم الكلمة المحجوزة for للإعلان عن حلقة for وتكون جملة for من ثلاث أجزاء يفصل بينها بفاصلة منقوطة ( ; ) وهي:

  • لقيمة الاولية لمتغير التحكم ( يمكن الاعلان عن متغير داخل او خارج حلقة for ولكن القيمة الأولية لابد تعطى للمتغير عند الإعلان عن الحلقة ).
  • الشرط الحلقة التكرارية.
  • مقدار التغير في قيمة متغير الحلقة.

وتكون الصيغة العامة للحلقة التكرار for في C#


for (initialization; Boolean expression; update control variable)
statement

ويشرح الشكل التالي مكونات بيان الإعلان عن حلقة تكرار for في لغة سي شارب.

بيان الإعلان عن حلقة تكرار for في لغة سي شارب

ويكون تنفيذ حلقة التكرار for في لغة سي شارب كتالي :

for( int i= 0; i<= 10; i++)
Console.WriteLine(i);


التكرار المتحكم (غير محدود)

ذكرنا سابقاً أن أحد أساليب التكرار هو التكرار المتحكم (غير المحدود ) ففي بعض الأحيان ، قد نحتاج التحكم في عدد مرات التكرار للحلقة، أي نحتاج إلى التحكم في الحلقة ويتم هذا بواسطة استخدام قيمة ما تتحكم في عدد مرات التكرار. وتسمى هذه القيمة بالقيمة الحارسة (تسمى أيضًا قيمة الإشارة أو القيمة الوهمية أو قيمة العلم) وتشير إلى "نهاية إدخال البيانات".

القيمة الحارسة نفسها ليست جزء من البيانات المعالجة. لهذا التكرار الذي تتحكم فيه القيمة الحارسة هو تكرار غير محدود لأنه من غير المعروف مسبقًا عدد المرات التي سيتم فيها تنفيذ الـ loop . ويوضح المثال التالي طريقة عمل التكرار الغير محدود.

في هذا المثال سنقوم بعمل برنامج لحساب معدل درجات مادة معينة لعدد غير محدد من الطلاب حيث يقوم البرنامج باستقبال درجات الطلاب من المستخدم وعندما يدخل المستخدم القيمة الحارسة يقوم البرنامج بالخروج من حلقة التكرار والاستمرار بتنفيذ بقية تعليمات البرنامج وفي هذا المثال يقوم البرنامج بحساب المعدل الدرجات المدخلة:

في البداية سنمثل سير تنفيذ العمليات للبرنامج من خلال Flowchart (المزيد عن تنفيذ  الـ Flowchart في مقال عن  المخططات الانسيابية Flowcharts وكتابة الخوارزميات Algorithms)


وستكون طريقة تنفيذ الكود للبرنامج التكرار الغير محدود بواسطة تعليمات لغة سي شارب كالتالي :

string course_name;
	int total = 0; 		//to sum the grades 
	int gradeCounter= 0;	//to count the  grades that be entered  
	int grade;		//grade value entered by the user 	
	double average;	//average of the grades

	Console.Write("Enter Course Name: ");
	course_name = Console.ReadLine();
	Console.WriteLine("Welcome to the grade book for {0}!\n", course_name);

	// label read_grade 
	read_grade:
		{
		Console.Write("Enter grade or -1 to quit:"); 	//prompt the user 
		grade = Convert.ToInt32(Console.ReadLine());
		}

    while( grade != -1)
	{
		total  += grade ;	 	//add the grade to total 
		gradeCounter ++;  	 	//increment the counter by 1
		goto read_grade;		 //read the next grade from label "read_grade"
	}

	if( gradeCounter != 0)
	{
		//calculate the average of all grades entered 
		average = (double) total / gradeCounter;
		//display the total and the average ( with two digits of precision)
		Console.WriteLine("\n Total of the {0} grades entered is {1}", gradeCounter, total);
		Console.WriteLine("Class average is {0:F}" , average);
	}
	else 	// no grades were entered, so the output error message 
	Console.WriteLine("No grades were entered");


عبارتي break و continue مع حلقة التكرار

يمكن التحكم في تنفيذ حلقات التكرار loops بواسطة عبارات التحكم مثل break و continue التي ستؤثر على في طريقة تنفيذ حلقة التكرار بشكل معين لنرى طريقة تأثير كلا من break و continue على حلقات التكرار.

break

استخدام عبارة break مع حلقة التكرار يؤدي لإنهاء تنفيذ التكرار loop والخروج من حلقة التكرار ويوضح المثال التالي طريقة استخدام break مع حلقة التكرار، في المثال سوف ينتهي التنفيذ عند قيمة معينة وينقل التنفيذ إلى التعليمات التي تلي حلقة التكرار loop مباشرةً.لاحظ /ي النتائج في المثال التالي :

for ( int i = 1;i <= 10;i++)	
{
if(i == 5)	
break;		
Console.WriteLine("{0}", i);
}

لتكن النتيجة

1
2
3
4

continue

استخدام continue مع حلقة التكرار يؤدي إلى تخطي التنفيذ لدورة معينة من التكرار مع استكمال التنفيذ للدورات التالية من حلقة التكرار. ويوضح المثال التالي طريقة تأثير استخدام continue مع حلقة التكرار، في المثال سوف يتم تحطي التنفيذ عند قيمة معينة وفي المثال سنقوم بتخطي الدورة رقم 5 من التكرار ومن ثم يتابع تنفيذ حلقة التكرار Loop لاحظ /ي نتيجة المثال التالي :

for ( int i = 1;	i <= 10;	i++)	
{
if(i == 5)	
continue;		
Console.WriteLine("{0}", i);
}

لتكن النتيجة

1
2
3
4
6
7
8
9
10

تُعتبر حلقات التكرار أحد الأدوات الأساسية في عالم البرمجة. فهي تمثل طريقة فعّالة لتنفيذ سلسلة من العمليات المتكررة بطريقة مُنظمة ومنطقية. تعتبر حلقات التكرار جزءًا أساسيًا من غالبية لغات البرمجة المنتشرة، وتُستخدم في تنفيذ العديد من المهام المتكررة مثل معالجة البيانات، والتلاعب بالقوائم، وتحليل البيانات الضخمة، وبناء الأنظمة الحاسوبية المعقدة.

جميع الأمثلة في هذا المقال متوفرة على الرابط هنا .

إلى هنا ينتهي هذا المقال الذي يشرح مفهوم حلقات التكرار loops في البرمجة، ويوضح الفرق بين التكرار المحدود وغير المحدود، وشرح المقال أشكال حلقات التكرار وطريقة بناء الجملة التكرارية من خلال تعليمات لغة  C# سواء كانت حلقة التكرار من نوع while أو do…while أو for بالإضافة إلى شرح تأثير وطريقة استخدام عبارتي break و continue مع حلقات التكرار.



إرسال تعليق

فضلاً اترك تعليق
موافقة ملفات تعريف الارتباط
لتحسين تجربتك… يستخدم موقعنا ملفات تعريف الارتباط (Cookies)
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.