دستورات سی شارپ را میشناسید؟

خانه / آموزش / دستورات سی شارپ را میشناسید؟
دستورات سی شارپ
دستورات سی شارپ

بعد ازشناخت مفاهیم اولیه مانند انواع داده ها، انواع عملگرها، تبدیلات، دستورات چاپ و خواندن باید بدانیم که دستورات یک زبان برنامه نویسی چه هستند؟ آیا کاربردی دارند؟ کاربرد آنها چیست و چگونه میتوان از آنها استفاده کرد؟

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

همچنین تلاش میکنیم تا به تمامی این سوال ها پاسخ دهیم و توضیح خواهیم داد که چگونه و درکجا، ازاین دستورات استفاده کنیم.

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

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

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

برای بررسی یک شرط در برنامه ما ازعبارت های شرطی استفاده می کنیم.

انواع عبارات شرطی:

زبان سی شارپ شامل دستورات تصمیم گیری زیر است :

  1. دستور if
  2. دستور if…else
  3. دستورات if تو در تو
  4. دستور switch
  5. دستورات switch تو در تو

عبارت شرطی if:

If از یک عبارت شرطی که خروجی بولین دارد تشکیل شده که در ادامه ی آن نیز دستوراتی که در صورت برقرار بودن شرط اجرا می شوند آورده شده است

دستور  if  در بسیاری از زبان های برنامه نویسی وجود دارد و بسیار پر کاربرد و کارآمد هست. ما به if میگوییم که اگر شرطی که میخواهیم برقرار شد کاری را انجام دهد.

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

استفاده از عبارت شرطی if:

قاعده نوشتاری دستور if به شکلی است که در زیر آمده است :

(if(boolean expression

}

    // execute this code block if expression evalutes to true

{  

مثال:

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

;int a = 10

;int b = 10

}

(if( a == b

   ;(” Console.WriteLine(“Condition is TRUE

{

همانطور که ملاحظه می‌کنید در مجموعه‌ی کد بالا دستور شرطی if استفاده شده است و چون مقدار a برابر با مقدار b است پاسخ به صورت Condition is TRUE در صفحه نمایش و داخل پنل کنسول چاپ می‌شود.

دستور if…else:

این شکل نحوه اجرای عبارت شرطی را نشان می دهد. در صورت درست بودن شرط، دستوراتی که در بخش True می باشند، اجرا خواهند شد. در غیراین صورت دستورات بخش False اجرا می شوند.

هر if میتواند یک else نیز داشته باشد بدین صورت که در صورت برقرار نبودن شرط درون if دستوراتی که در بخش else آن نوشته شده اند اجرا می شوند.

دستور else بعد از بدنه دستور if قرار می گیرد و یا در زنجیره ای از دستورات if و else قبل از دستور if به صورت else-if قرار می‌گیرد. در هر صورت دستور else تنها یک بار می‌تواند در زنجیره دستورات if و else قرار گیرد.

در واقع این عبارات شرطی دارای دو بخش هستند. بخش اول برای  “True”، و بقیه بخش ها، برای “False”. .یک عبارت شرطی دو مقدار “True” و “False” را می پذیرد.

اگر شرط درست باشد بلافاصله به بخش دستورات True ، در غیر اینصورت به بخش دستورات False می رویم. بخش False، اختیاری است. اگر به این بخش نیاز باشد، آن را می نویسیم، در غیر اینصورت می توانیم این بخش را ننویسیم.

قاعده نوشتاری برای این دستور به شکل زیر است :

(if(boolean expression

}

    // execute this code block if expression evalutes to true

{

else

}

// always execute this code block when above if expression is false

{

(شرط) if

}

دستورات درست بودن شرط

{

else

}

دستوراتی که شرط درست نباشد

{

مثال:

فرض کنید متغیری بنام a  داریم از نوع عددی که اگر برابر با ۳۰ بود تقسیم بر ۲ شود و اگر برابر با ۳۰ نبود پیغام خطا نمایش داده شود . برای همین داریم:

;(if(a==30

}

;A=a/2

{

else

}

;(“عدد اشتباه می باشد”) messageBox.show

{

به این نکته باید توجه کرد که بدنه دستور if در داخل {} (Brace)  می باشد، در صورتی که از یک دستور استفاده می کنیم می توانیم از گذاشتن Brace صرف نظر کنیم. اما در صورتی که قرار باشد متغیر را در داخل دستور if تعریف کنیم و از یک دستور استفاده کنیم حتما باید از Brace استفاده کنیم.

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

دستور else-if:

در صورتی که لازم باشد از چند دستور شرطی به صورت متوالی استفاده کنیم از دستور شرطی else if استفاده می کنیم که اگر قرار باشد توضیح فارسی برای این دستور بکار ببریم می گوییم:

مرحله اول: اگر شرط برقرار بود، دستورات اول اجرا شود.

مرحله دوم: در غیر این صورت اگر شرط دوم برقرار بود، دستورات دوم اجرا شود.

ادامه می دهیم تا مرحله n: در غیر این صورت اگرشرط n برقرار بود، دستورات n اجرا شود.

مرحله آخر: در غیر این صورت، سایر دستورات اجرا شود.

شکل کلی آن در زبان برنامه نویسی سی شارپ به این صورت است:

 (شرط اول) if

}

دستورات شرط اول

{

else if(شرط دوم)

}

دستورات شرط دوم

{

(else if(n شرط

}

n دستورات شرط

{

else

}

سایر دستورات

{

مثال:

(static void Main(string[] args

}

    ;int i = 10, j = 20

    (if (i > j

 }

        ;(“Console.WriteLine(“i is greater than j

    ;(” i بیشترازConsole.WriteLine(” j

{

 ( else if (i < j

   }

        (“Console.WriteLine(“i is less than j

    ;(” i کمترازConsole.WriteLine(” j

 {

    else

}

        ;(“Console.WriteLine(“i is equal to j

      ;(” i برابرConsole.WriteLine(” j

   {

{

خروجی نمونه مثال بالا به شکل زیر است :

i is less than j

i کمتراز j

نکته مهم: در صورتی که یکی از شرط ها برقرار باشد، دستور آن شرط اجرا، اما مابقی شرط ها بررسی نمی شود و برنامه به else آخر منتقل می شود.

 دستورات if تو در تو:

زبان برنامه نویسی سی شارپ به ما اجازه می دهد که دستورات if را به صورت تو در تو استفاده کنیم به عبارتی شما می توانید یک if ویا else if را درون یک if یا else if دیگر به کار ببرید که هرعبارت  If خودش به طور جداگانه،  دارای بخش های Trueو False می باشد.

مثال:

;int i = 10

(if (i > 0

}

   ( if (i <= 100     

}     

        ;(“Console.WriteLine(“i is positive number less than 100            

      ;(“i تعدادعددمثبت کمتر از100“) Console.WriteLine            

 {     

    else      

  }       

        ;(“Console.WriteLine(“i is positive number greater than 100                  

       ;(“i تعدادعدد مثبت بیشتر از100“)Console.WriteLine                   

    {       

{

خروجی به شکل زیر است :

i is positive number less than 100

تعداد عدد مثبت کمتر از100 است.

به طورخلاصه درباره دستور if میتوان گفت:

  1. دستورات if-else جریان برنامه را بر اساس ارزیابی عبارت بولین دستور if کنترل می‌کنند.
  2.  دستورات شرطی جایگزین باید با یک دستور جایگزین آغاز شده و به دنبال آن از دستورات else و یا else if استفاده شود.
  3. تنها یک دستور else می‌تواند در یک زنجیره if-else قرار بگیرد.
  4. می توان چندین دستور else-if را در یک زنجیره if-else استفاده کرد.

 در زبان سی شارپ می توان به راحتی دستورات if را به صورت تو در تو به کار برد.

دستور switch:

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

قاعده نوشتاری دستور switch به شکلی است که در زیر آمده است :

(switch(expression

}

    <case <value 1

        code block//    

    ;break

    <case <value 2

        code block//     

    ;break

    <case <value N

        code block//     

    ;break

    default

        code block//      

    ;break

{

همانطور که در قاعده ی نوشتاری بالا مشاهده می کنید دستور switch شامل یک عبارت در داخل یک پرانتز است. این دستور همچنین شامل چندین برچسب case است که هر کدام از case ها شامل یک مقدار در کنار خود است. دستور switch همچنین دارای کلمات رزرو شده ی break است که اجرای case موردنظر را خاتمه می دهد. دستور switch شامل قسمت دیگری به نام  default  نیز است که در صورتی که هیچ کدام از case ها اجرا نشود این قسمت اجرا خواهد شد.

مثال:

;’char grade = ‘B

(switch(grad

}

              ; ‘case: ‘A

                   ;(“!Console.WriteLine(“Excellent    

                   ;break

                ;’case: ‘B

                ;’case: ‘C

                   ;(“Console.WriteLine(“Well done     

                   ;break

                ;’case: ‘D

                   (“Console.WriteLine(“You passed     

                   ;break

                ;’case: ‘F

                   ;(“Console.WriteLine(“Better try again      

                   ;break

                   :default

                ;(“Console.WriteLine(“Invalid grade       

                   ;break

{

;(“Console.WriteLine(“Your grade is  {0}”, grade

;()Console.ReadLine

خروجی به صورت زیر می‌باشد:

Well done

Your grade is B

در این مثال ابتدا یک متغییر به نام grade از نوع char تعریف و سپس آن را به عنوان یک عبارت به دستور switch معرفی کرده‌ایم (عبارتی که مدام در حال تغییر است تا شرط متناسب با آن پیدا شود) در نهایت درون کد switch یک سری case (خانه‌ی انتخابی) قرار داده‌ایم که مقادیر متفاوت دارد.

حال به ازای هر مقدار درون این خانه‌ها یک عبارت مشخص چاپ می‌شود و اگر آن مقدار چاپ شد (مثلا مقدار A عبارت Excellent را نمایش می‌دهد) با دستور break برنامه از شرط خارج شده و سپس عبارت Your grade is Excellent نمایش داده می‌شود. نوشتن دستور break برای خارج شدن از شروط می‌باشد که قرار دادن آن الزامی نیست.

از طرفی در انتهای دستور switch یک کلمه به نام default‌ وجود دارد که بیان می‌کند اگر هر یک از case های فوق برابر با شرط نبود، دستور نهایی درون بلاک default را چاپ کن.

نکته : مقادیری که در کنار case ها قرار می گیرند باید منحصر به فرد باشند. این مقادیر می توانند از نوع bool ،  char ،  string ،integer ، enum و یا مقادیر null پذیر باشند ولی عبارت دستور switch می‌تواند یک متغیر با هر داده نوعی اعم از char ، enum ، int ، bool ، string و …  باشد.

همانند دستور if دستور switch نیز می تواند به صورت تو در تو استفاده شود.

به طورخلاصه درباره دستور switch میتوان گفت:

  1. دستور switch مقدار یک متغیر را با مجموعه ای از مقادیر ثابت مقایسه می‌کند.
  2. یک دستور switch می تواند شامل چندین برچسب case باشد.
  3. از break برای توقف اجرای دستورات در داخل switch استفاده میشود.
  4. در صورتی که دستورات هیچکدام از case ها اجرا نشود قسمت defult اجرا خواهد شد
  5.  در زبان سی شارپ دستور switch را می توان به صورت تو در تو به کار برد.

بادستورات شرطی وانواع انها آشناشدیم و دانستیم که چه کاربردی دارند واینکه چگونه میتوان ازآن ها استفاده کرد.

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

خیلی از اوقات، نیاز داریم قطعه ای از کد چندین بار تکرار شود. برای مثال، فرض کنید میخواهیم اعداد 1 تا 100 را چاپ کنیم. راه حل چیست؟ صد بار پشت سر هم دستور Console.WriteLine را بنویسیم؟؟؟!!! صد در صد اینطور نیست. در اینجور مواقع باید از حلقه ها استفاده کنیم. حلقه ها به ما این قابلیت را می دهند که دستوراتی را به تعداد دلخواه تکرار کنیم.

 4 مدل حلقه تکرار:

  • دستورfor
  • دستورwhile
  • دستورdo-while
  • دستورforeach

دستورfor:

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

 

ساختار کلی دستور for را با هم بررسی می کنیم. بوسیله دستور for می توان یک قطعه از کد را تعداد دلخواهی که مد نظر داریم اجرا کنیم. ساختار کلی این دستور به شکل زیر است:

({for(        {init} ;          {condition};  {increment

(افزایش یا کاهش متغیر شرط  ;عبارت شرطی ;تعریف و مقدار دهی متغیر شرط)

}

    // loop body

اجرا مجموعه  دستورات تازمان برقراری شرط

{

  • خوب، بهتره که به کاربرد و مفهوم هر یک از بخش های دستور بالا بپردازیم: init: در این بخش باید متغیری که شمارنده بر اساس آن عمل خواهد کرد را تعریف کنیم. هر حلقه for نیاز به یک متغیر شمارنده دارد که در هر تکرار، مقدار آن یک واحد اضافه می شود. این متغیر در بخش init تعریف می شود. این متغیر باید مقدار اولیه نیز داشته باشد.

condition: بعد از تعریف متغیر شمارنده، باید شرطی برای اتمام حلقه مشخص کنیم، برای مثال، می خواهیم شرط ما 10 بار تکرار شود. در این قسمت تعیین می کنیم که حلقه ما در چه حالتی به اتمام می رسد. این قسمت باید مقدار بازگشتی از نوع bool داشته باشد.

  1. increment: در این بخش مقداری که با هر بار تکرار به شمارنده ما اضافه می شود یا کم می شود را مشخص می کنیم.
  2. loop body: بدنه حلقه for یا دستوراتی که می خواهیم با هر بار تکرار حلقه for اجرا شوند را در این قسمت می نویسیم. دقت کنید که بدنه حلقه for با Brace باز و بسته مشخص می شود. در اینجا مانند دستور if، در صورتی که تعداد دستورات حلقه for تنها یک دستور بود می توان از نوشتن Brace ها خودداری کرد.

ترتیب اجرای مراحل در دستور حلقه for در سی شارپ: 

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

مثال:

(++for (int i = 0; i < 10; i

                    }

                                    ;(0Console.WriteLine(“Value of i: {0}”, i

                      {

شکل زیر اجرای گام به گام مثال بالا را نشان میدهد :

حلقه تکرار
حلقه تکرار

همانطور که در شکل بالا مشخص است اولین گام تعریف و مقدار دهی متغیری از نوع int است. گام دوم بررسی شرط بوده و در صورتی که صحیح ارزیابی شود در گام سوم دستورات موجود در بدنه حلقه اجرا خواهد شد. در گام چهارم به مقدار متغیر یکی افزوده شده و در نهایت دوباره شرط حلقه ارزیابی می شود.

حلقه های تو در تو (Nested Loops):

زمانی که ما چند حلقه for را داخل هم بنویسیم، به این حلقه ها، حلقه های تو در تو گفته می شود. برای مثال، فرض کنید که قصد داریم جدول ضرب 9 در 9 را در خروجی چاپ کنیم. برای اینکار ما نیاز به حلقه های تو در تو خواهیم داشت. نمونه کد زیر یک جدول ضرب 9 در 9 را برای ما در خروجی چاپ می کند:

(++for (int i = 1; i => 9; i

}

(++for (int j = 1; j => 9; j       

}       

;(“Console.Write((i*j) + “\t        

{       

;()Console.WriteLine

{

حلقه اول، 9 بار، و با هر بار اجرای حلقه اول، حلقه دوم 9 بار اجرا خواهد شد و خروجی ضرب متغیرهای i و j در خروجی چاپ خواهد شد.

دستور break:

بوسیله دستور break می توانیم در شرایطی که مد نظر داریم از حلقه خارج شویم. برای مثال، در حلقه زیر، زمانی که شمارنده به عدد 50 برسد، حلقه for متوقف شده و از حلقه خارج می شویم:

(++for(int counter = 2; counter <= 100; counter

}

(if(counter == 50

;break

;(Console.WriteLine(counter

{

;(“!Console.WriteLine(“End of program

دستور continue:

به کمک این دستور می توانیم روند اجرای حلقه را متوقف کرده و به ابتدای حلقه برگردیم. فقط به این نکته توجه داشته باشید که این دستور باعث reset شدن حلقه نمی شود و حلقه، تکرار بعدی را اجرا می کند. برای مثال، اگر ما در تکرار 50 امین تکرار، دستور continue را اجرا کنیم، 51 امین تکرار اجرا خواهد شد و روند اجرا به ابتدای حلقه باز خواهد گشت. برای مثال، برنامه ای که اعداد زوج بین 1 تا 100 را در خروجی چاپ می کرد را به صورت زیر نیز می توانیم بنویسیم:

(++for(int counter = 1; counter <= 100; counter

}

(if(counter % 2 != 0

;continue

;(Console.WriteLine(counter

{

در کد بالا گفتیم که اگر باقیمانده تقسیم متغیر شمارنده بر عدد 2، مخالف صفر بود، تکرار بعدی اجرا شود، در غیر اینصورت دستور WriteLine اجرا خواهد شد.

مثال:

دریافت دو عدد از کاربر و محاسبه عدد اول به توان عدد دوم:

 

 

;(“:Console.Write(“Enter first number

;(()var firstNumber = int.Parse(Console.ReadLine

;(“:Console.Write(“Enter second number

;(()var secondNumber = int.Parse(Console.ReadLine

;var pow = 1

(++for (var counter = 1; counter =>secondNumber; counter

}

;pow = pow*firstNumber

{

;(Console.WriteLine(firstNumber + ” ^ ” + secondNumber + ” = ” + pow

;()Console.ReadKey

در کد بالا، ابتدا دو عدد را از کاربر دریافت کرده و عدد های وارد شده را به عدد تبدیل می کنیم و در دو متغیر firstNumber و secondNumber ذخیره می کنیم. سپس برای خروجی متغیری با نام pow تعریف می کنیم و مقدار اولیه آن را برابر 1 قرار می دهیم.

دلیل اینکه مقدار آن را یک قرار دادیم، دستور داخل حلقه for می باشد، در صورتی که مقدار اولیه را صفر قرار می دادیم، نتیجه ضرب عدد اول در صفر، صفر می شد و نهایتاً خروجی ما عددی جز عدد صفر نخواهد بود. سپس حلقه ای تشکیل داده که به تعداد عدد دوم تکرار می شود و در داخل بدنه عدد اول را در pow ضرب کرده و نتیجه را در pow ذخیره می کنیم. پس از تمام حلقه، در خروجی با پیغام مناسب مقدار pow را چاپ می کنیم.

نکته:

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

متغیری که در حلقه for به کار برده می‌شود می‌تواند از هر نوعی از داده نوع های شمارنده مانند double ، decimal و … باشد

در مورد حلقه های بینهایت مراقب باشید. در صورتی که برای حلقه ی for مقدار دهی اولیه ، شرط و شمارنده در نظر گرفته نشود ، می تواند به یک حلقه ی بی نهایت تبدیل شود. بنابراین اطمینان حاصل کنید که عبارت شرطی در حلقه for در نقطه ای ، مقدار false را برای اتمام حلقه برمی‌گرداند.

حلقه های بی نهایت بعد از اجرا باعث خطا و سر ریز در حافظه میشوند.

مثالی از حلقه بی نهایت :

(   ;   ;    )for 

}

Console.Write(1);

{

خروجی به شکل زیر است :

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1….

به طور خلاصه میتوان گفت دستورfor:

  1. حلقه ی for بلاکی از کد ها را به صورت تکراری اجرا میکند.
  2. حلقه ی for شامل سه قسمت است : مقدار دهی اولیه ، قسمت شرطی و گام یا شمارنده.
  3. از کلمه ی break  برای خروج از هر قسمتی از حلقه for میتوان استفاده کرد.
  4. در زبان برنامه نویسی سی شارپ حلقه های for را میتوان تو در تو به کاربرد.

دستور while:

انواع حلقه های تکراررانام بردیم. دستور بعدی دستور while می باشد. وظیفه دستور حلقه while اجرای مداوم یک سری از دستورات تا زمان برقرار شدن شرط داخل حلقه است.

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

({while({condition

}

// loop syntaxes

{

برای دستور while در بخش condition ما باید شرطی که بر اساس آن حلقه به اتمام خواهد رسید را مشخص کنیم. دقت کنید که دستورات داخل بدنه while تا زمانی اجرا خواهند شد که شرط while برابر true باشد.

ترتیب اجرای مراحل در دستور حلقه while در سی شارپ :

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

توجه کنید که افرایش یا کاهش متغیر شرط( عبارت کنترل) حتما باید در داخل دستورات بدنه حلقه While در سی شارپ صورت بگیرد این کار برای خاتمه دادن به حلقه while ضروری است و در صورت فراموشی این کار توسط برنامه نویس یک حلقه while بی نهایت را خواهیم داشت. در نتیجه در زمان استفاده از دستور حلقه While در سی شارپ باید حتما این نکته را به خاطر بسپاریم . (در دستور حلقه for از انجا که عبارت کنترل بخشی از الگوی دستور for است احتمال بروز این خطا توسط برنامه نویس وجود ندارد.)

مثال:

;var counter = 1

(while (counter => 10

}

;(Console.WriteLine(counter

;++counter

{

به کد بالا دقت کنید، ابتدا متغیری را خارج از حلقه while تعریف کردیم. سپس حلقه while را نوشتیم. بر اساس شرط حلقه while، کد بدنه حلقه ما تا زمانی اجرا خواهد شد که مقدار counter کوچکتر یا مساوی 10 باشد. مهمترین نکته ای که باید به آن توجه کنید، دستور آخر بدنه while است، بوسیله دستور آخر با هر بار اجرای حلقه ما یک واحد به متغیر counter اضافه می کنیم. در صورتی که این خط نوشته نشود، حلقه ما به صورت بی نهایت اجر خواهد شد و دائماً عدد 1 را در خروجی نمایش می دهد، زیرا مقدار counter اضافه نشده و شرط حلقه while برای همیشه مقدار true بر می گرداند.

به طورخلاصه میتوان گفت دستورwhile :

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

حلقه do-while:

ساختار حلقه do-while به صورت زیر است:

do

}

// syntaxes

{

({ while({condition

در بخش condition شرط اتمام حلقه را می نویسیم. تفاوت حلقه while با حلقه do-while در این است که حلقه do-while حداقل یکبار اجرا خواهد شد، به این خاطر که شرط اتمام حلقه را در اتنهای حلقه می نویسیم، اما حلقه while در صورت برقرار نبودن شرط، اصلاً وارد حلقه نمی شویم. همچنین به علامت ; در انتهای دستور بالا دقت کنید.

مثال:

;Int a=16

do

}

;(“Consol.WriteLine(“while ok

a++

;( while(a==15{

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

به طورخلاصه میتوان گفت دستورdo-while:

  1. حلقه ی do-while بلاکهایی از کد را به صورت تکراری اجرا می‌کند.
  2. حلقه do-while بلاک های موجود در بدنه ی خود را برای حداقل یک بار اجرا می‌کند.
  3. از کلمه رزرو شده break برای توقف اجرای حلقه do-while و خروج از آن استفاده کنید.
  4. در زبان سی شارپ حلقه های do-while را می توان به صورت  تو در تو به کار برد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *