در ادامه آموزش سی شارپ در سایت باگتو در این مقاله دستورات حلقه در زبان سی شارپ را آموزش می دهیم.
آیا تابهحال فکر کردهاید که نرمافزارها چگونه یک کار را بارهاوبارها انجام میدهند؟
مثلاً میخواهیم از بین لیستی از افراد که چند دههزار آیتم دارند آنهایی که نامشان علی است را بیابیم و یا میخواهیم روی صفحه ده بار کلمه "باگتو " را چاپ کنیم
راهحل چیست؟
شاید اولین راهی که به ذهن یک برنامهنویس مبتدی میرسد این است که ده بار دستور
Console.WriteLine(“باگتو”(
را چاپ کنیم. ولی این راهحل برنامهنویسان حرفهای نیست.
برنامهنویسان حرفهای از مفهومی به نام حلقه استفاده میکنند. کار حلقهها انجامدادن یک کار بهصورت پشتسرهم است مثلاً در مثال بالا ما در حلقه یکبار دستور را مینویسیم ولی حلقه آن راهده بار چاپ میکند.
حلقهها در سی شارپ انواع مختلفی دارند که ما در ادامه هرکدام را بهصورت جداگانه بررسی میکنیم.
1- حلقه for
اولین حلقهای که میخواهیم آن را بررسی کنیم حلقه <<for>> است که ساختار آن به این صورت است
for(Starting step; Condition;Command)
{
Alghorithm
مثال:
for(int i=0; i<10;i++)
{
Console.WriteLine(“باگتو”(;
}
همانطور که حدس میزنیم الگوریتم داخل حلقه باتوجهبه شرط حلقه اجرا میشود و هر موقع که شرط داخل حلقه برقرار نبود دیگر اجرا نمیشود
در مثال بالا درون حلقه یک متغیر تعریف کردهایم که مقدار اولیه آن صفرمی باشد که اولین گام ما است سپس یک شرط داریم که به این صورت است که مقدار متغیر کمتر از ده باشد و بعد از آن دستور را داریم که بعد هر دور چرخیدن حلقه یک واحد به مقدار متغیر اضافه میشود.
پس در نتیجه زمانی که حلقه اجرا میشود مقدار آن صفر است و درون شرط چک میشود که صفر کوچکتر از ده است سپس یکبار کلمه باگتو چاپ میشود سپس یک واحد به مقدار اولیه متغیر اضافه میشود و مقدار آن یک میشود دوباره شرط چک میشود که یک کوچکتر از ده است و برای بار دوم کلمه باگتو چاپ میشود و همینطور ادامه پیدا میکنید تا زمانی که مقدار متغیر 10 شود و برنامه از حلقه خارج شود یعنی کلمه باگتو تا زمانی که مقدار متغیر 9 است چاپ میشود یعنی دقیقاً 9 بار کلمه باگتو چاپ میشود.
*اگر شرط نگذاریم و یا اینکه مقدار شرط همیشه برقرار باشد (مثلاً یک برابر یک همیشه برقرار است) تا روشن بودن سیستم حلقه را اجرامی شود و به سیستم و منابع آسیب میزند.
*اگر برای حلقهها از محدوده ({}) استفاده نکنیم فقط یک خط بعد حلقه تکرار میشود و نمیتوان الگوریتم چند خطی نوشت.
*میتوان در الگوریتم نیز از حلقه استفاده کرد که اصطلاحاً به آن حلقه تودرتو میگویند.
به مثال زیر توجه کنید
for(Starting step; Condition;Command)
{
for(Starting step; Condition;Command)
{
Alghorithm
}
}
2-حلقه while
این حلقه نیز دقیقاً مانند حلقه قبلی است و برای ما کار را تکرار میکند با این تفاوت که دیگر گام شروع و دستور ندارد و فقط شرط است (میتوان گام شروع و دستورات را داخل یا خارج حلقه نوشت)
While(Condition)
{
Alghorithm
}
مثال
While(1==1)
{
Console.WriteLine(“باگتو”(;
}
در مثال بالا تا زمانی که 1=1 باشد کلمه باگتو چاپ میشود و میدانیم که این شرط همیشه برقرار است و هرگز پایان نمیپذیرد و تا زمان روشن بودن کامپیوتر شما این کلمه را چاپ میکند که احتمالاً میلیونها بار است.
3-Dowhile
دقیقاً مانند حلقه <<While>>است با این تفاوت که الگوریتم درون حلقه حداقل یکبار اجرا میشود
do
{
Alghorithm
}While(1==1)
مثال
Int i=0;
do{
Console.WriteLine(“باگتو”(;
i=i+1;
}While(i<7)
همانطور که میبینید زمانی که حلقه اجرا میشود اول یکبار کلمه باگتو چاپ میشود سپس وارد شرط میشود به این صورت که مقدار متغیر در اولین چرخش صفر است و در هر دور چرخش یک واحد به آن اضافه میشود و تا زمانی که مقدار آن کوچکتر از هفت باشد با هر چرخش یکبار کلمه را چاپ میکند یعنی 6 بار این کلمه چاپ میشود.
خب تا به اینجای کار متوجه شدیم که حلقهها چه کاربردی دارند و چطور میشود از آنها استفاده کرد البته ناگفته نماند که سی شارپ حلقه دیگری بنام foreach دارد که چون مرتبط با لیستها است ما آن را در این مقاله نگنجاندهایم.
البته فقط خواندن این مقاله برای یادگیری این مبحث پر کاربرد کافی نیست و یادگیری بهتر این مبحث وابسته به تمرینهای شما است. برای درک بهتر این موضوع نمونهای از چند تمرین را در آخر مقاله نوشتهایم.
شما میتوانید آنها را حل کنید و جواب را در قسمت کامنتها برای ما ارسال کنید
در صورت وجود هرگونه مشکل حتماً از قسمت باگ مشکل را با ما در میان بگذارید
فراموش نشود که حتماً ویدئوهای رایگان آموزش سی شارپ مقدماتی را که درمورد حلقهها هست را از قسمت دورهها مشاهده فرمایید که این مفهوم پرکاربرد و بینظیر بهتر برای شما جا بی افتد و ملکه ذهن شما شود.
زیرا برنامه نویسی چیزی نیست جز تمرین.
تمرینها:
- برنامهای بنویسیم که از یک تا صد را در خروجی نشان دهد.
- عددی از ورودی گرفته و از یک تا آن عدد در خروجی نشان داده شود.
- برنامه ای بنویسید که یک عدد بهعنوان ورودی بگیرد و به مقدار خودش از خودش چاپ کند؟ (راهنمایی: اگر عدد ۳ باشد ۳ تا ۳ بنویسد!)
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید