به عنوان نمونه‌هایی از انواع حلقه ها در سی شارپ می‌توانیم به «For» و «While» و «Do -While» و «Foreach» اشاره کنیم. بعضی وقت‌ها لازم است که بلوک خاصی از کدها را چندین بار مختلف اجرا کنیم. در حالت عادی، عبارت‌های نوشته شده به ترتیب و از بالابه‌پایین اجرا می‌شوند. زبان‌های برنامه نویسی برای تغییر دادن این ترتیب، ساختارهای کنترلی به نام حلقه، فراهم کرده‌اند. با استفاده از حلقه می‌توان مسیرهای پیچیده‌تری برای اجرای کد طراحی کرد. تمام برنامه نویس‌ها باید درک خوبی نسبت به حلقه‌ها داشته باشند. حلقه‌ها به توسعه‌دهندگان کمک می‌کنند تا رفتار مشخصی را چندین بار به صورت متوالی اجرا کنند. در نتیجه برنامه‌های نوشته شده کارآمدی و قدرت بسیار بیشتری پیدا می‌کنند. حلقه‌ ها در سی شارپ ابزار بسیار مهمی برای کنترل جریان اجرای برنامه هستند.

فهرست مطالب این نوشته
997696

در این مطلب از مجله فرادرس، به بررسی انواع مختلف حلقه ها در سی شارپ می‌پردازیم. سینتکس هر حلقه و روش پیاده‌سازی آن را همراه با مثال‌های کدنویسی شده نشان می‌دهیم. بعد از معرفی انواع حلقه‌ ها در سی شارپ، عبارت‌های کنترل حلقه را با کمک مثال‌های مختلف معرفی خواهیم کرد. در آخر مطلب هم به حلقه‌ی بی‌نهایت و نحوه‌ی تعریف آن می‌پردازیم. همچنین حلقه‌های تو در تو را نیز بررسی می‌کنیم.

حلقه ها در سی شارپ

استفاده از حلقه‌ها در برنامه نویسی بسیار مهم است. زیرا این ساختارها به اجرای وظایف خاصی به صورت تکراری کمک می‌کنند. با کمک حلقه‌ها دیگر برنامه نویسان مجبور نیستند که کدهای خاصی را چندین و چندبار به صورت تکراری بنویسند. برای خودکار‌سازی روند انجام بسیاری از کارها می‌‌توانیم از حلقه‌ها استفاده کنیم. این مسئله نه‌ تنها باعث صرفه‌جویی در زمان می‌شود بلکه کدهای نوشته شده را کوتاه‌تر و قابلیت نگهداری آن‌ها را نیز افزایش می‌دهد. حلقه‌ها در انجام کارهایی مانند پیمایش بر روی مجموعه داده‌ها، پردازش حجم زیادی از داده‌ و پیاده‌سازی الگوریتم‌های پیچیده‌ نیز به برنامه نویسان کمک می‌کنند. برای تبدیل شدن به برنامه نویس حرفه‌ای سی شارپ لازم است که در کار با حلقه‌ها حرفه‌ای شویم.

انواع حلقه ها در سی شارپ

به طور کل می‌توان انواع حلقه‌های سی شارپ را به چند دسته زیر تقسیم کرد.

  • حلقه For: این حلقه، مجموعه‌ای از دستورات را به تعداد مشخصی اجرا می‌کند. استفاده از این حلقه باعث کوتاه‌تر شدن کدهای مربوط به متغیر حلقه می‌شود.
  • حلقه While: این حلقه، عبارت خاص یا گروهی از عبارت‌ها را تا زمانی اجرا می‌کند که شرط مشخص شده برقرار باشد. در هر چرخه، ابتدا شرط مشخص شده را بررسی می‌کند. سپس در صورت «True» بودن پاسخ شرط، دستورات درون عبارت، اجرا می‌شوند.
  • حلقه Do While: این حلقه هم مانند حلقه While است. با این تفاوت که شرط مشخص شده را هربار بعد از به پایان رسیدن دستورات درون بلوک حلقه، بررسی می‌کند.
  • حلقه Foreach: از حلقه Foreach برای دسترسی به عناصر موجود در مجموعه‌هایی مانند آرایه‌ها و لیست‌ها استفاده می‌شود. در این نوع حلقه، نیازی به استفاده از اندیس هر عنصر نیست.
انواع حلقه ها در سی شارپ
انواع حلقه ها در سی شارپ

البته انواع حلقه ها در سی شارپ شامل موارد دیگری مانند حلقه‌های تو در تو و حلقه‌های بی‌نهایت هم هستند. این حلقه‌ها از ترکیب حلقه‌های فهرست بالا ساخته می‌شوند. به همین دلیل در فهرست معرفی نشده‌اند. هر چند در ادامه مطلب تمام آن‌ها را توضیح داده‌ایم.

چند حلقه تودرتو در فضایی با نور گرم و مکعب‌های رنگی

مثال ساده‌ای درباره کار با حلقه

در مثال زیر، ابتدا آرایه‌ای را تعریف کردیم. سپس برای نمایش اعضای درون این آرایه از حلقه استفاده کرده‌ایم.

بعد از اجرای کدهای بالا خروجی زیر تولید شده و در کنسول سی شارپ نمایش داده می‌شود.

1
2
3
5
6

در ادامه مطلب، تمام حلقه‌ها نام‌ برده شده در بالا را یک به یک بررسی کرده‌ایم.

حلقه While در سی شارپ

از حلقه «While» برای تکرار دستور یا مجموعه‌ای از دستورات استفاده می‌شود. این حلقه‌ زمانی به کار برده می‌شود که تعداد تکرار دستور مورد نظر از قبل مشخص نیست. در این ساختار، شرطی برای حلقه تعریف می‌شود. تا زمانی که این شرط برقرار باشد، دستورات درون بلوک While به صورت تکراری اجرا می‌شوند.

حلقه While همیشه اول شرط مشخص شده را بررسی می‌کند. در صورت True بودن پاسخ این شرط، دستورات درون بلوک خود را اجرا می‌کند. برای کاهش خطاهای سینتکسی هنگام نوشتن کد و درک بهتر نکات مبهم، یکی از روش‌های مدرن، استفاده از دستیارهای هوش مصنوعی است. برای مسلط شدن بر این مسئله می‌توانید فیلم آموزش کاربرد ChatGPT در برنامه نویسی سی شارپ «C#‎» از کدنویسی تا دیباگینگ را از فرادرس مشاهده کنید. لینک مربوط به این فیلم را در پایین نیز قرار داده‌ایم.

در کدهای پایین مثالی را درباره استفاده از حلقه while پیاده‌سازی کرده‌ایم.

بعد از اجرای کدهای بالا خروجی زیر در کنسول سی شارپ نمایش داده می‌شود.

Number: 1
Number: 2
Number: 3
Number: 4
Number: 5

استفاده از فیلم های پروژه محور برای یادگیری بهتر سی شارپ

روش‌های مختلفی برای یادگیری تکنولوژی‌های کامپیوتری بخصوص برنامه نویسی وجود دارند. از منابع متنی و مطالعاتی گرفته تا کلاس‌های حضوری، آنلاین و تماشای فیلم‌های آموزشی. اما در این میان استفاده از فیلم‌های آموزشی نسبت به سایر روش‌ها از برتری قابل توجهی برخوردار است. زیرا به صورت همزمان حافظه‌های دیداری و شنیداری دانشجو را تحریک می‌کند. علاوه‌بر آن در این روش امکان مشاهده چندباره فیلم‌های آموزشی و بخش‌های مختلف نیز وجود دارد. در ضمن نسبت به کلاس‌های حضوری هزینه مقرون به صرفه‌تری هم دارند. به همین دلیل فرادرس مجموعه کاملی از فیلم‌های آموزشی را برای سی شارپ تهیه کرده است.

مجموعه آموزش پروژه‌محور سی‌شارپ #C – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش پروژه‌محور سی شارپ هدایت شوید.

همین‌طور که می‌دانیم C#‎ در حوزه‌های مختلف کاربرد دارد. این زبان بخاطر سادگی، امنیت و انعطاف‌پذیری بالا به خوبی در سیستم‌ها و فناوری‌های مختلف ادغام می‌شود. برای همین توانایی کار با آن برای برنامه نویسان مانند امتیازی برجسته است. بهترین روش یادگیری هر ابزاری، استفاده از آن بر روی پروژه‌های مربوط به دنیای واقعی است. به همین دلیل، فرادرس درباره زبان سی شارپ، مجموعه‌ آموزشی را فراهم کرده است که تمام فیلم‌های آن به صورت پروژه محور تولید شده‌اند.

در بالا چند مورد از فیلم‌های آموزش پروژه‌محور سی شارپ را معرفی کرده‌ایم.

حلقه For در سی شارپ

از حلقه «For» برای اجرای توالی از دستورات به صورت تکراری استفاده می‌شود. در این حلقه، متغیر شمارنده در یک خط کد، مدیریت می‌شود. بنابراین استفاده از for  باعث کوتاه‌تر شدن کدها نیز می‌شود.

در کادر پایین، مثالی را برای بررسی روش کار حلقه for  پیاده‌سازی کرده‌ایم.

بعد از اینکه کدهای بالا کامپایل و اجرا شدند، نتایج زیر تولید می‌شود.

Number: 1
Number: 2
Number: 3
Number: 4
Number: 5

حلقه Do While در سی شارپ

حلقه «Do While» شبیه به حلقه while  است. به غیر از آن که در این حلقه، شرط اجرای آن پس از انجام دستورات داخل حلقه بررسی می‌شود.

با دقت بر روی مثال زیر، به سادگی می‌توانید روش کار حلقه do while  را درک کنید.

بعد از اینکه کدهای بالا کامپایل و اجرا شدند، نتایج زیر در کنسول سی شارپ نمایش داده می‌شوند.

Number: 1
Number: 2
Number: 3
Number: 4
Number: 5

حلقه Foreach در سی شارپ

حلقه «Foreach» یکی از انواع حلقه ها در سی شارپ است. این حلقه ویژگی‌ خاصی دارد. حلقه Foreach برای پیمایش بر روی مجموعه داده‌هایی مانند لیست‌ها یا آرایه‌ها در سی شارپ یا حتی سایر ساختارهای قابل شمارش به کار برده می‌‌شود. کار با این حلقه، استفاده از عناصر درون مجموعه‌ها را ساده‌تر می‌کند. با کمک حلقه foreach  در سی شارپ دیگر نیازی به شمارش اعضا یا اندیس‌های عناصر نداریم.

نمونه‌ای از حلقه for در سی شارپ که در وسط سه فلش زرد رنگ و با نماد #C قرار دارد.

از این حلقه زمانی استفاده می‌کنیم که بخواهیم عملیات خاصی را بر روی تمام اعضای درون ساختارهای پیمایش‌پذیر انجام بدهیم. بدون اینکه نیاز باشد از اندیس این عناصر در محاسبات خود استفاده کنیم.

اجرای کد بالا باعث تولید خروجی‌ زیر می‌شود.

M
o
s
t
a
f
a

سینتکس حلقه Foreach

در کادر پایین سینتکس حلقه foreach  را نمایش داده‌ایم.

در سینتکس بالا سه پارامتر اصلی وجود دارند. این پارامترها را در فهرست زیر، توضیح داده‌ایم.

  • data_type: این پارامتر، نوع عناصر موجود در مجموعه داده را مشخص می‌کند. برای مثال می‌توان از انواع داده‌ int  و string  و غیره نام برد.
  • variable_name: متغیر موقتی است که در هر بار پیمایش، عنصر فعلی را نگه‌ می‌دارد.
  • collection: آرایه یا مجموعه داده‌ای که بر روی آن پیمایش می‌کنیم.

حلقه foreach  برای پیمایش بر روی عناصر مجموعه داده مورد نظر از کلمه کلیدی in  استفاده می‌کند. در هر مرحله از پیمایش، یک عنصر – به ترتیب از اول مجموعه – انتخاب شده و در متغیر ذخیره می‌شود. حلقه تا زمانی اجرا می‌شود که تمام عناصر موجود در مجموعه داده پردازش شوند.

در زمان استفاده از حلقه foreach  باید به نکات مهم زیر، توجه کنیم.

  • باید عبارت‌های داخل حلقه foreach  را در آکولاد‌های باز و بسته {}  محصور کنیم.
  • در حلقه‌ی foreach نیازی به تعریف متغیر شمارنده نیست. در عوض، باید متغیری تعریف کنیم که نوع آن با نوع داده‌ی عناصر آرایه یکسان باشد. سپس نام آرایه بعد از کلمه‌ی کلیدی in  نوشته می‌شود.
  • داخل بلوک حلقه می‌توانیم از متغیر ساخته شده خودمان استفاده کنیم. دیگر نیازی به استفاده از آرایه و شماره اندیس آن نداریم.

در مثال زیر، از حلقه foreach  برای پیمایش بر روی مجموعه‌ای‌ از کاراکترها استفاده کرده‌ایم.

اجرای کدهای بالا باعث تولید خروجی‌های زیر می‌شود.

Number of males: 3
Number of females: 2

در مثال زیر با استفاده از حلقه foreach  بر روی انواع ساختارهای ذخیره داده پیمایش کرده‌ایم. این ساختارها شامل لیست، آرایه و دیکشنری در سی شارپ هستند.

اجرای کدهای بالا باعث تولید خروجی‌های زیر می‌شود.

Fruits:
Apple
Banana
Orange

Numbers:
10
20
30

Ages:
A: 30
B: 25
C: 35

محدودیت ها و مزایای حلقه Foreach

حلقه foreach  هم مانند سایر انواع حلقه ها در سی شارپ دارای محدودیت‌ها و مزایای مخصوص به خود است. در این بخش از مطلب ابتدا محدودیت‌های کاربردی حلقه foreach  را نام برده‌ایم.

  • دسترسی بدون اندیس: برعکس حلقه for  معمولی، در حلقه foreach  متغیری برای نگهداری اندیس عناصر، وجود ندارد. در نتیجه نمی‌توانیم به بخش خاصی از داده‌ها یا موقعیت خاصی در مجموعه داده مورد نظر اشاره کنیم.
  • بدون امکان کار بر روی مجموعه داده: در زمان پیمایش داده‌ها با استفاده از حلقه foreach  نمی‌توانیم عنصری را از مجموعه داده مورد نظر حذف کرده یا به آن اضافه کنیم.
  • فقط پیمایش یک جهته: حلقه foreach  فقط از عنصر اول شروع کرده و به سمت انتهای مجموعه داده پیمایش می‌کند. در هر پیمایش هم فقط یک قدم برمی‌دارد.
  • «سربار عملکرد» (Performance Overhead): حلقه foreach  ممکن است که نسبت به حلقه‌های معمولی کندتر عمل کند. این مسئله به طور خاص در زمان کار با حجم انبوهی از داده‌ها مشاهده می‌شود.
محدودیت‌های حلقه Foreach
محدودیت‌های استفاده از حلقه Foreach

اما استفاده از حلقه foreach  مزیت‌های زیادی هم دارد. در فهرست زیر، مهم‌ترین مزیت‌های به‌کارگیری حلقه foreach  را نوشته‌ایم.

  • حلقه foreach  روش بسیار ساده و سرراستی برای کار با عناصر درون مجموعه‌های مختلف فراهم کرده است. دیگر نیازی به دسترسی به اندیس این عناصر نداریم.
  • استفاده از این حلقه خوانایی کدها را هم بیشتر می‌کند. زیرا دیگر بخش‌های پیچیده حلقه‌های معمولی در کدها وجود ندارند.
  • این حلقه از روبه‌رو شدن توسعه‌دهندگان با خطاهای «Off-By-One» جلوگیری می‌کند. احتمال رویدادن این خطاها در حلقه‌ها معمولی بیشتر است.
  • حلقه foreach  به صورت درونی به مدیریت اندیس‌ها می‌پردازد. در نتیجه پیمایش بر روی داده‌ها ساده‌تر می‌شود.
  • استفاده از این حلقه کدها را تمیز‌تر می‌کند. بنابراین تعمیر و نگهداری کدها به روش ساده‌تری انجام می‌شود.

نکته:‌ در زمان استفاده از حلقه foreach  اگر تغییری در مجموعه داده ایجاد شود، برنامه با خطای زمان اجرا مواجه خواهد شد.

آرم سی شارپ وسط سه حلقه طلایی - حلقه ها در سی شارپ

تفاوت های بین حلقه For و Foreach

در میان انواع حلقه ها در سی شارپ، حلقه‌های for  و foreach  شباهت‌هایی دارند. اما با این حال، تفاوت‌های مهمی هم بین آن‌ها وجود دارد. در این بخش از مطلب، مهم‌ترین تفاوت‌های حلقه‌های for  و foreach  را بررسی کرده‌ایم.

  • تعریف: در حلقه for، کد نوشته شده در بدنه حلقه به تعداد مشخص شده در عبارت شرطی آن اجرا می‌شود. اما حلقه foreach  بر روی تمام عناصر مجموعه داده مشخص شده پیمایش می‌کند. دستورات نوشته شده در بدنه حلقه بر روی هر عنصر یک بار اجرا می‌شوند.
  • پیمایش: حلقه for  را می‌تواند در هر دو جهت، به سمت جلو و عقب پیمایش کرد. اما حلقه foreach  را فقط می‌توان از اول به آخر، به سمت جلو، پیمایش کرد.
  • کارآمدی: حلقه for  می‌تواند کارایی بیشتری داشته باشد. زیرا این حلقه نسخه کپی شده‌ای از روی آرایه ایجاد نمی‌کند. اما حلقه foreach  برای استفاده در مجموعه داده‌های بزرگ کارآمدی کمتری دارد. زیرا باید از تمام داده‌ها یکبار کپی تهیه کند. این کار زمان‌بر است.
  • کاربرد: حلقه for  بهترین گزینه برای استفاده در سناریو‌هایی است که نیاز به اندیس‌گذاری سفارشی، پیمایش به عقب یا «بهینه‌سازی در عملکرد» (Performance Optimization) دارند. حلقه foreach  هم مناسب پیمایش بر روی عناصر درون مجموعه‌ داده‌های مختلف است.

برای کسب مهارت بیشتر در کدنویسی با سی شارپ و بخصوص کار با حلقه‌ها می‌توانید انواع پروژه‌های سی شارپ را برای تمرین حل کرده یا راه حل‌های ارائه شده آن‌ها را بررسی کنید. به این منظور پیشنهاد می‌کنیم که مطلب مربوط به پروژه‌های سی شارپ برای تمرین در مجله فرادرس را مطالعه کنید.

در بخش بعدی مطلب، عبارت‌های کنترل حلقه را بررسی کرده‌ایم.

عبارت های کنترل حلقه

عبارت‌های کنترل حلقه، ترتیب عادی اجرای کدها را تغییر می‌دهند. بعد از آن که اجرای کدها موجود در بلوک یا تکه کد خاصی به پایان می‌رسد – با توسط عبارت‌های کنترل حلقه متوقف شود – تمام متغیر‌ها و اشیا ساخته شده در آن بلوک به شکل خودکار نابود می‌شوند.

در زبان برنامه نویسی سی شارپ، دو عبارت کنترلی زیر، تعریف شده‌اند.

  • عبارت break: این دستور اگر در بلوک‌های حلقه یا switch  استفاده شود، فعالیت این بلوک‌ها را به شکل کامل متوقف کرده و از آن خارج می‌شود. سپس اجرای کدها از خط بعد از حلقه یا switch  ادامه پیدا می‌کند.
  • عبارت continue: در صورتی که از این عبارت در حلقه استفاده شود، بقیه دستورات درون حلقه – در آن دور خاص – نادیده گرفته شده و کار حلقه دوباره از اول شروع می‌شود. ابتدا شرط حلقه بررسی می‌شود. اگر شرط برقرار باشد، دور بعدی دستورات حلقه اجرا می‌شود.
چند مکعب رنگی و درخشان به صورت منظم در صف قرار گرفته‌اند.

عبارت Break

دو دلیل عمده برای استفاده از عبارت break  در سی شارپ وجود دارد. در فهرست زیر این دلایل را نوشته‌ایم.

  • استفاده برای کنترل جریان حلقه: وقتی درون حلقه‌ای با عبارت break  روبه‌رو می‌شویم. بلافاصله انجام کار حلقه متوقف می‌شود. بعد از آن اجرا برنامه از خط کد بعد از حلقه ادامه پیدا می‌کند.
  • استفاده برای کنترل ساختار switch: از عبارت break  برای متوقف کردن جریان کار عبارت switch  هم استفاده می‌شود.

اگر از عبارت break  درون حلقه‌های تو‌درتو استفاده کنیم، اجرای حلقه‌ای متوقف می‌شود که عبارت break  در آن نوشته شده است. یعنی اینکه اگر این عبارت درون حلقه داخلی نوشته شده باشد، اجرای آن حلقه متوقف شده و اجرای برنامه از خط کد بعد از آن در حلقه بیرونی، ادامه پیدا می‌کند. در بخش‌ انتهایی مطلب، حلقه تو در تو را معرفی کرده‌ایم.

برای استفاده از break  فقط باید کلمه کلیدی آن را در یک خط کد مجزا بنویسیم.

استفاده از عبارت Break با حلقه While

در مثال زیر، با کمک عبارت break  حلقه while را به پایان می‌رسانیم. این کار وقتی اتفاق می‌افتد که شمارنده حلقه به عدد 15  برسد.

بعد از کامپایل شدن و اجرای کدهای بالا، نتایج زیر در کنسول سی شارپ نمایش داده می‌شوند.

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15

استفاده از عبارت Break در حلقه For

در این مثال، هر وقت اولین عدد زوج پیدا شد، حلقه for متوقف می‌شود. سپس عدد زوج پیدا شده در خروجی نمایش داده می‌شود.

بعد از کامپایل و اجرای کدهای بالا، نتایج زیر در کنسول سی‌شارپ نمایش داده می‌شوند.

Checking number: 1
First even number found: 2
Loop terminated after finding the first even number.

عبارت Continue

عبارت «Continue» هم در سی شارپ مانند عبارت break  کار می‌کند. با این تفاوت که عبارت break  انجام حلقه را به شکل کامل به پایان می‌رساند. ولی عبارت continue  فقط اجرای بقیه کدهای درون حلقه را رها کرده و دور فعلی حلقه را به پایان می‌رساند. سپس دور بعد حلقه – در صورت برقرار بودن شرط – شروع می‌‌شود.

در فهرست زیر، مراحل انجام کار حلقه for  را در زمان روبه‌رو شدن با عبارت continue  نوشته‌ایم.

  1. وجود عبارت continue  در حلقه for  باعث می‌شود که انجام ادامه دستورات درون بلوک حلقه متوقف شود.
  2. سپس برنامه، شرط ادامه حلقه را بررسی می‌کند.
  3. در صورت برقرار بودن شرط، بخش به‌روزرسانی شمارنده حلقه را اجرا می‌کند.
  4. بعد از آن هم دوباره وارد حلقه می‌‌شود.

در فهرست زیر هم مراحل انجام کار حلقه‌های while و do while را در زمان روبه‌رو شدن با عبارت continue  نوشته‌ایم.

  1. وقتی برنامه در حلقه while یا do while ، با عبارت continue  روبه‌رو شود، بقیه کدهای درون بلوک حلقه نادیده گرفته می‌‌شوند.
  2. سپس اول شرط پیمایش حلقه بررسی می‌شود.
  3. اگر شرط هنوز برقرار بود دوباره برنامه وارد حلقه می‌شود.
سه مکعب مربع درخشان که بر روی آن‌ها جریانی از داده در حال حرکت است.

برای استفاده از عبارت continue  فقط باید کلمه کلیدی آن را همراه با علامت ; در یک خط کد مجزا بنویسیم.

استفاده از عبارت Continue در حلقه Do While

در کدهای زیر، بعد از اینکه مقدار a  برابر با 15  شود، ادامه پیمایش حلقه متوقف می‌شود. یعنی دستور مربوط به چاپ مقدار شمارنده برای عدد 15  اجرا نمی‌شود. برای انجام این کار از دستور continue;  استفاده کرده‌ایم.

بعد از اینکه کدهای بالا کامپایل و اجرا شدند، نتایج زیر در کنسول سی شارپ نمایش داده می‌شوند.

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 16
value of a: 17
value of a: 18
value of a: 19

استفاده از عبارت Continue در حلقه For

در کدهای زیر با استفاده از عبارت continue  ادامه پیمایش حلقه for  را متوقف کرده‌ایم. سپس از اول پیمایش حلقه در دور بعدی شروع شده است.

بعد از اینکه کدهای بالا کامپایل و اجرا شدند، نتایج زیر در کنسول سی شارپ نمایش داده می‌شوند.

Odd number: 1
Odd number: 3
Odd number: 5
Odd number: 7
Odd number: 9
Loop completed.

یاد گرفتن زبان برنامه نویسی سی شارپ با کمک فرادرس

فرادرس برای آموزش زبان برنامه نویسی سی شارپ، محتواهای متنی و فیلم‌های آموزشی متنوعی تولید و منتشر کرده است. زیرا زبان #C یکی از زبان‌های مشهور و پُرکاربرد در حوزه‌های تجارت و صنعت است.همچنین، افراد زیادی تمایل به یادگیری این زبان برنامه نویسی دارند. هدف فرادرس، این است که هم دانشجویان و محصلان بتوانند از فیلم‌های آموزشی آن به عنوان منابع کمک درسی استفاده کنند و هم افراد شاغل یا جویای کار بتوانند مهارت‌های عملی خود را ارتقا دهند.

در بالا، چند مورد از فیلم‌های آموزشی این مجموعه را معرفی کرده‌ایم. در صورت تمایل بر روی تصویر پایین کلیک کرده و باقی فیلم‌های این مجموعه را نیز بررسی کنید.

مجموعه آموزش برنامه نویسی سی شارپ C#‎ – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش برنامه نویسی سی شارپ، دوره مقدماتی تا پیشرفته، هدایت شوید.

در ادامه مطلب، حلقه بی‌نهایت و حلقه‌های تو در تو در سی شارپ را نیز بررسی کرده‌ایم.

حلقه بی نهایت در سی شارپ

اگر برای حلقه‌‌ای شرطی مشخص کنیم که همیشه برقرار باشد، آن حلقه به حلقه بی‌نهایت تبدیل می‌‌شود. یعنی اینکه بدون توقف و برای همیشه به اجرای خود ادامه می‌دهد. به شکل سنتی برای پیاده‌سازی حلقه بی‌نهایت از for  استفاده می‌شود. از آنجا که وجود هیچ کدام از بخش‌های سه‌گانه حلقه for  - شروع، شرط و به‌روزرسانی شمارنده الزامی نیست، به سادگی می‌توان حلقه بی‌نهایت ایجاد کرد. برای انجام این کار فقط کافیست که بخش شرط را در این حلقه خالی بگذاریم.

در مثال زیر، روش تعریف و استفاده از حلقه بی‌نهایت در سی شارپ را بررسی کرده‌‌ایم.

وقتی که عبارت شرطی وجود نداشته باشد، برنامه چنین در نظر می‌گیرد که شرط همیشه برقرار «True» است. بنابراین حلقه دائما اجرا می‌شود. البته برای نوشتن حلقه بی‌نهایت می‌توانیم بخش‌های شروع و به‌روزرسانی شمارنده را هم بنویسیم اما بیشتر برنامه نویسان برای نمایش حلقه بی‌نهایت فقط از for(;;) استفاده می‌کنند.

حلقه های تو در تو در سی شارپ

برای معرفی کامل انواع حلقه ها در سی شارپ لازم است که «حلقه‌های تو‌درتو» (Nested Loops) را نیز بررسی کنیم. حلقه تو در تو به زمانی گفته می‌شود که یک حلقه درون بلوک کد حلقه دیگری قرار بگیرد. در این حلقه‌ها به ازای هر دور حلقه بیرونی، حلقه درونی باید تمام فرایند پیمایش خود را کامل کند.

در ادامه این بخش، برای بررسی بهتر حلقه‌های تو در تو در سی شارپ، از چند مثال مختلف استفاده کرده‌ایم.

سینتکس تعریف حلقه تو در تو

در کادر زیر، سینتکس تعریف حلقه for  تو در تو را در زبان سی شارپ پیاده‌سازی کرده‌ایم.

در کادر زیر، سینتکس تعریف حلقه while تو در تو را در زبان سی شارپ پیاده‌سازی کرده‌ایم.

در کادر زیر، سینتکس تعریف حلقه do …while  تو در تو را در زبان سی شارپ پیاده‌سازی کرده‌ایم.

نکته: برای تعریف حلقه‌های تو‌درتو می‌توانیم از انواع متفاوتی از حلقه‌ها به صورت ترکیبی استفاده کنیم. یعنی اینکه می‌توان حتی حلقه‌‌ای از نوع while را در داخل حلقه for  تعریف کرد و برعکس.

نماد سی شارپ در وسط حلقه‌هایی که مانند الکترون به دور آن می‌چرخند.

حلقه For تو در تو

در برنامه زیر از حلقه for  تو در تو برای پیدا کردن اعداد اول بین 2  تا 100  استفاده کرده‌ایم.

بعد از اینکه کدهای بالا کامپایل و اجرا شدند، نتایج زیر در کنسول سی شارپ نمایش داده می‌شوند.

2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
53 is prime
59 is prime
61 is prime
67 is prime
71 is prime
73 is prime
79 is prime
83 is prime
89 is prime
97 is prime

حلقه While تو در تو

در برنامه زیر از حلقه while تو در تو برای پیدا کردن اعداد اول بین 2  تا 100  استفاده کرده‌ایم.

بعد از اجرا شدن کدهای بالا نتایج زیر در کنسول سی شارپ نمایش داده می‌شوند.

2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
53 is prime
59 is prime
61 is prime
67 is prime
71 is prime
73 is prime
79 is prime
83 is prime
89 is prime
97 is prime

حلقه Do While تو در تو

در برنامه زیر از حلقه Do While  تو در تو برای پیدا کردن اعداد اول بین 2  تا 100  استفاده کرده‌ایم.

بعد از اینکه کدهای بالا کامپایل و اجرا شدند، نتایج زیر در کنسول سی شارپ نمایش داده می‌شوند.

2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
53 is prime
59 is prime
61 is prime
67 is prime
71 is prime
73 is prime
79 is prime
83 is prime
89 is prime
97 is prime

جمع‌بندی

انواع حلقه ها در سی شارپ شامل حلقه‌های اصلی for  و while و do while  و foreach  هستند. اما زبان سی شارپ با کمک این حلقه‌ها و ترکیب بعضی از آن‌ها ساختاری دیگری هم برای انجام وظایف تکراری یا پیمایش داده‌ها ساخته است. برای مثال می‌توانیم به حلقه‌های تو در تو یا حلقه‌های بی‌نهایت اشاره کنیم. در این مطلب از مجله فرادرس با تمام حلقه‌های قابل استفاده در زبان سی شارپ آشنا شده و برای هر کدام مثال‌‌های ساده کدنویسی شده‌ای را بررسی کردیم.

برنامه نویسان گاهی از اوقت مجبور به تکرار بخش‌های خاصی از کد به تعداد مشخص یا نامشخصی می‌شوند. بهترین روش انجام این کار استفاده از حلقه‌هاست. بدون وجود حلقه‌ها پیاده‌سازی بعضی از کدها کاملا غیر ممکن می‌شود. مخصوصا در مسئله‌هایی که معلوم نیست وظیفه خاصی چندبار باید تکرار شود.

source

توسط expressjs.ir