سه شنبه ۱۸ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

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

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

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

یک عبارت حلقه (Loop) به ما اجازه می‌دهد که یک دستور یا گروهی از دستورات را چندین بار اجرا کنیم و قالب کلی یک حلقه برای بیشتر زبان‌های برنامه‌نویسی به شرح زیر است:

Loop Architecture

در زبان برنامه‌نویسی C#، انواع مختلف حلقه برای مدیریت نیازهای حلقه‌زنی در اختیار شما قرار داده شده‌اند.

ردیف نوع حلقه و توضیحات
۱ حلقه while

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

۲ حلقه for

این حلقه، یک دنباله ای از دستورات را چندین بار اجرا می‌کند و کدی را که مدیریت متغیر حلقه را بر عهده دارد، به صورت مختصرتر می‌نویسد.

۳ حلقه do...while

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

۴ حلقه‌های تو در تو

می‌توانید یک یا چند حلقه را درون یک حلقه while، for یا do...while دیگر استفاده کنید.

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

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

C# شرح زیربخش های کنترلی را فراهم می کند. 

ردیف نوع کنترل & شرح
۱ break statement

حلقه (loop) یا switch statement را خاتمه می دهد و اجرای برنامه را به دستوری که بلافاصله پس از حلقه یا switch قرار دارد منتقل می کند.

۲ continue statement

موجب می شود که حلقه بقیه بدنه خود را رد کند و قبل از تکرار مجدداً، شرط را دوباره ارزیابی کند.

حلقه بی‌نهایت

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

مثال


using System;

namespace Loops {
   class Program {
      static void Main(string[] args) {
         for (; ; ) {
            Console.WriteLine("Hey! I am Trapped");
         }
      }
   }
} 

زمانی که عبارت شرطی موجود نباشد، به صورت پیش فرض درست تلقی می شود. شما ممکن است یک عبارت شروع و عبارت افزایش داشته باشید، اما برنامه نویسان معمولاً از ساختار for(;;) برای نشان دادن حلقه بی‌نهایت استفاده می کنند.