مشخصات مقاله
-
4582
-
3.0
-
19794
-
1
-
2
آموزش کار با ساختارهای تکرار حلقه Loops در C#
وقتی توی برنامهنویسی با یک سری دستور سروکار داری که قراره چندین بار اجرا بشن، نوشتن همون دستورات به صورت جداگانه برای هر بار تکرار، هم زمانبره و هم اصلاً روش مناسبی نیست. اینجاست که ساختارهای تکرار یا حلقهها در C# به کارمون میان. با استفاده از حلقهها میتونی یک بخش از کد رو تا زمانی که شرط موردنظر برقرار هست، چندین بار اجرا کنی.
حلقهها یکی از مفاهیم پایه و مهم در یادگیری C# هستن و توی خیلی از برنامههایی که مینویسی باهاشون سروکار خواهی داشت. در ادامه با چهار نوع اصلی حلقه در C# آشنا میشیم و با مثالهای عملی میبینیم هرکدوم چطور کار میکنن.
آموزش کار با ساختارهای تکرار حلقه Loops در C# :
یکی دیگه از تکنیکهای مهم موقع نوشتن نرمافزار، امکان ایجاد حلقههای دستوری یا looping هست. این دستورات به ما اجازه میدن یک بلوک از کد رو هر تعداد بار که لازم داریم، تکرار کنیم. مثلاً فرض کن میخوایم یک سری دستور تا زمانی اجرا بشه که مقدار یک متغیر کمتر از 10 باشه. برای انجام چنین کاری، باید از حلقهها در C# استفاده کنیم.
در زبان C# چهار نوع حلقه اصلی داریم که در ادامه دونهدونه سراغشون میریم و با مثالهای عملی نحوه کار هرکدوم رو بررسی میکنیم.
حلقه loop While :
حلقه While loop سادهترین نوع حلقه در C# هست و به همین دلیل آموزش حلقهها رو از همینجا شروع میکنیم. این حلقه مجموعه دستوراتی رو که داخل خودش قرار گرفتن، تا زمانی اجرا میکنه که شرط مشخصشده برای حلقه درست یا true باشه. کد زیر یک مثال ساده از حلقه While رو نشون میده. بعد از کد، قدمبهقدم بررسی میکنیم چه اتفاقی میافته:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int number = 0;
while(number < 5)
{
Console.WriteLine(number);
number = number + 1;
}
Console.ReadLine();
}
}
}
برنامه رو اجرا کنید. خروجی، اعداد 0 تا 4 رو به شما نشون میده. متغیر number در این مثال در واقع نقش شمارنده حلقه While رو داره. مقدار اولیه اون 0 هست و هر بار که دستورات داخل حلقه اجرا میشن، مقدار number یک واحد بیشتر میشه.
تا وقتی مقدار number کمتر از 5 باشه، اجرای دستورات حلقه ادامه پیدا میکنه. دقت کنید که خود عدد 5 دیگه جزو شرط نیست. به محض اینکه مقدار number به 5 برسه، شرط حلقه false میشه، اجرای حلقه متوقف میشه و برنامه میره سراغ خط کدی که بعد از حلقه While قرار گرفته.
حلقه do loop :
حلقه do loop یک تفاوت مهم با حلقه While loop داره. در do loop اول دستورات داخل بدنه حلقه اجرا میشن و بعد از اون شرط بررسی میشه. اگه شرط درست باشه، دستورات حلقه دوباره اجرا میشن و این روند ادامه پیدا میکنه.
نکته مهم اینجاست که حتی اگه شرط حلقه از همون ابتدا درست نباشه، دستورات داخل do loop حداقل یک بار اجرا میشن. یعنی در این نوع حلقه، اجرای بدنه قبل از بررسی شرط انجام میشه.
کد زیر یک مثال ساده از کار با حلقه do loop رو نشون میده:
do
{
Console.WriteLine(number);
number = number + 1;
} while(number < 5);
خروجی حلقه do loop در مثال بالا اعداد 0 تا 5 رو چاپ میکنه و وقتی شماره حلقه به 6 برسه، اجرای اون متوقف میشه.
حلقه for loop :
مکانیزم حلقه for loop با حلقههایی که تا اینجا دیدیم، کمی فرق داره. معمولاً وقتی از for استفاده میکنیم که از قبل یک دید کلی داشته باشیم که حلقه تقریباً چند بار قراره تکرار بشه. این حلقه یک شمارنده داره که با هر بار اجرای حلقه، مقدارش به اندازه مشخصی کم یا زیاد میشه.
اجرای حلقه تا زمانی ادامه پیدا میکنه که شرط درست باشه و نکته مهم اینه که شرط در ابتدای هر بار اجرای حلقه بررسی میشه. کد زیر یک مثال عملی از حلقه for loop هست:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int number = 5;
for(int i = 0; i < number; i++)
Console.WriteLine(i);
Console.ReadLine();
}
}
}
کد بالا خروجی مشابه حلقه While loop ایجاد میکنه، اما همونطور که میبینید، ساختار for کمی جمعوجورتره. حلقه for از سه بخش اصلی تشکیل شده:
در بخش اول، یک متغیر رو برای شمارش دفعات اجرای حلقه تعریف و مقداردهی میکنیم. در بخش دوم، شرط اجرای حلقه رو بر اساس متغیر شمارنده مشخص میکنیم و در بخش سوم هم گام افزایش یا کاهش شمارنده رو تعیین میکنیم؛ مثلاً ++ یا –.
در مثال بالا، اول متغیر شمارنده حلقه رو با نام i تعریف کرده و مقدار 0 رو به اون دادهایم. این قسمت فقط یک بار، یعنی همون ابتدای شروع حلقه اجرا میشه.
دو بخش بعدی در هر بار تکرار حلقه بررسی میشن. در هر مرحله، مقدار i با متغیر عددی number مقایسه میشه. اگه i از number کوچکتر باشه، دستورات داخل حلقه اجرا میشن و بعد مقدار i یک واحد افزایش پیدا میکنه. این روند تا زمانی ادامه پیدا میکنه که شرط حلقه دیگه برقرار نباشه.
نکته 1 :
اگه برای شمارنده حلقه، گام افزایش یا کاهش مشخص نکنید، در صورتی که شرط اولیه حلقه درست باشه، حلقه for به صورت نامحدود اجرا میشه.
نکته 2 :
گام افزایش یا کاهش شمارنده رو فقط مجبور نیستید داخل پرانتز جلوی for قرار بدید؛ میتونید اون رو داخل بدنه دستورات حلقه هم قرار بدید.
حلقه foreach loop :
آخرین حلقهای که در این بخش بررسی میکنیم، حلقه foreach loop هست. این حلقه معمولاً وقتی استفاده میشه که با مجموعهای از آیتمها مثل آرایهها (Arrays) یا متغیرهای لیستی سروکار داشته باشیم. در مثال زیر از یک متغیر لیستی به نام ArrayList استفاده میکنیم.
بریم سراغ مثال عملی حلقه foreach loop:
using System;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ArrayList list = new ArrayList();
list.Add("John Doe");
list.Add("Jane Doe");
list.Add("Someone Else");
foreach(string name in list)
Console.WriteLine(name);
Console.ReadLine();
}
}
}
در ابتدای مثال، یک نمونه از متغیر لیستی ArrayList با نام list ایجاد کردهایم و بعد چند مقدار متنی رو به عنوان اعضای اون به آرایه اضافه کردهایم.
حالا با استفاده از حلقه foreach loop، یکییکی وارد آیتمهای آرایه میشیم و مقدار هر عضو رو داخل متغیر name قرار میدیم. بعد هم مقدار name رو در خروجی چاپ میکنیم.
همونطور که در کد میبینید، به حلقه foreach گفتهایم که متغیر name از نوع متنی string هست. وقتی از foreach استفاده میکنید، باید نوع دادهای رو که قراره حلقه روی اعضای اون حرکت کنه مشخص کنید.
اگه نوع دادهای اعضای آرایه ممکنه با هم متفاوت باشه، بهتره برای حرکت بین اعضای آرایه از یک متغیر شی کلاس object class استفاده کنید.
نکته :
وقتی با متغیرهای آرایهای کار میکنید، استفاده از حلقه foreach رو حتماً در نظر داشته باشید؛ چون ساختار بسیار سادهتری نسبت به سایر حلقهها در زبان C# داره.
اگه با ساختارهای تکرار در C# آشنا شدید و میخواید مفاهیم برنامهنویسی با این زبان رو اصولیتر یاد بگیرید، میتونید مسیر یادگیریتون رو با دوره آموزش C# ادامه بدید و مباحث مختلف این زبان رو به صورت منسجم دنبال کنید.