تبلیغات
میهن وب هاست

آموزش سی شارپ – دستورات کنترلی ۲

نویسنده : امیر

نظرات : ۰ دیدگاه

بازدید : ۳۱۸ بازدید

تاریخ : ۲۰ اسفند ۱۳۹۵

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

 

حتما قبل از بررسی دستورات کنترلی ۲ در سی شارپ نوشته ی مطالب قبلی این دوره ی آموزشی را با هشتگ #دوره آموزشی_سی_شارپ در سایت ما را مطالعه کنید.

 

عملگرهای افزایشی و کاهشی در سی شارپ:

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

این بدین معنی است که: مقدار counter با عدد ۱ جمع شده و مجدداً در خودش ریخته می‌شود . سی‌شارپ چندین راه میان‌بر برای این منظور دارد. برای مثال، خط کد زیر دقیقاً همان معنی را می‌دهد:

عمل‌گر =+ به‌طور هم‌زمان عملیات “اضافه‌کردن و اختصاص‌دادن” را انجام می‌دهد. این عمل‌گر، عمل‌وند سمت راست را با عمل‌وند سمت چپ جمع می‌کند و نتیجه‌ی آن را به عمل‌وند سمت چپ اختصاص می‌دهد. علاوه‌بر عملگر =+ عمل‌گرهای =- و =* و =/ نیز وجود دارند

  • عمل‌گر =- از لحاظ طریقه‌ی عمل‌کرد مشابه =+ است با این تفاوت که به‌جای جمع، عمل تفریق را انجام می‌دهد. برای مثال در دستور counter -= 1; مقدار عمل‌وند سمت راست از مقدار عمل‌وند سمت چپ کم می‌شود
  • عمل‌گر =* به طریقی مشابه عمل “ضرب‌کردن و اختصاص‌دادن” را انجام می‌دهد.
  • عمل‌گر =/ نیز به همین روال عمل می‌کند. برای مثال counter /= 2 معادل با counter = counter / 2 است.

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

هنگامی که می‌خواهید دقیقاً ۱ واحد به متغیر خود اضافه کنید می‌توانید از دو عمل‌گر پیش‌وندی و پس‌وندی برای افزایش مقدار متغیر استفاده کنید. برای استفاده از عمل‌گر افزایشی پیش‌وندی کافی است از دو علامت + قبل از اسم متغیر استفاده کنید. به‌عنوان مثال :

هنگامی‌که از ++ پیش‌وندی و پس‌وندی برای افزایش مقدار یک متغیر استفاده می‌کنید، به‌ظاهری متوجه تفاوتی نمی‌شوید زیرا هر دوی آن‌ها یک واحد به متغیر اضافه می‌کنند ولی این دو عمل‌گر متفاوت عمل می‌کنند. هنگامی‌که از ++ پیش‌وندی استفاده می‌کنید، ابتدا تغییرات روی متغیر مربوطه اعمال می‌شود، نتایج محاسبه شده و ذخیره می‌شود سپس متغیر مورد استفاده قرار می‌گیرد.به‌مثال زیر توجه کنید:

علاوه‌بر عمل‌گر پیش‌وندی و پس‌وندی افزایشی، می‌توانید از عمل‌گر پیش‌وندی و پس‌وندی کاهشی (-‌-) نیز استفاده کنید. این عمل‌گر  (-‌-) دقیقاً یک واحد را از متغیر کم می‌کند (Minus)

 

دستور break در حلقه ها:

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

همان‌طور که مشاهده می‌کنید، حلقه طوری طراحی شده که باید از ۱۰- تا ۱۰ را نمایش دهد ولی با استفاده از کلمه break، حلقه در زمانی که i مثبت می‌شود به پایان می‌رسد.

نکته‌ی قابل توجه در این برنامه، حلقه‌ی (while(true است. در این حلقه پیوسته شرط حلقه (condition) برقرار است (برابر با true است) و این حلقه تا بی‌نهایت اجرا می‌شود ولی با توجه به برنامه ما، دستور if درون حلقه مانع از اجرای بی‌نهایت حلقه شده و پس از این‌که ++x بزرگ‌تر از ۵ بود برنامه از حلقه خارج می‌شود.بنابراین حلقه‌ی بی‌نهایت while این‌گونه است:

در حلقه‌ی for تمام قسمت‌ها اختیاری هستند و شما می‌توانید با خالی گذاشتن آن قسمت‌ها یک حلقه‌ی بی‌نهایت به‌وجود آورید (توجه داشته باشید که گذاشتن سمی‌کالن‌ها در حلقه‌ی for اجباری است):

 

دستور continue در حلقه ها:

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

همان‌طور که می‌بینید این برنامه اعداد زوج ۰ تا ۱۰ نمایش می‌دهد. در این مثال هنگامی‌که i عددی فرد است، برنامه توسط کلمه continue به تکرار بعدی حلقه می‌پردازد و مقدار i را نمایش نمی‌دهد.

همان‌طور که در برنامه مشخص است، اگر شرط if درون حلقه برقرار باشد، دستور continue اجرا شده و برنامه به ابتدای حلقه باز می‌گردد. در حلقه‌های while و do-while کلمه‌ی continue موجب می‌شود برنامه مستقیماً به قسمت condition حلقه برود و مجدداً حلقه را اجرا کند.

 

دستور switch در سی شارپ:

قسمت expression باید یا integer type (مثل int, short, byte, char) یا string type باشد. غالباً expression، کنترل‌کننده‌ی switch، یک متغیر است. بعد از کلمه‌‌کلیدی case یک مقدار ثابت (constant) قرار می‌گیرد که حتماً باید هم‌نوع expression باشد. هیچ دو case ای در یک switch نباید constant یکسان داشته باشند.  کلمه‌کلیدی break در پایان هر case قرار دارد و برای پایان دادن به ساختار switch استفاده می‌شود. استفاده از کلمه‌کلیدی default اختیاری است. اگر مطابقت با expression در case ها یافت شد، کدهای قسمت همان case تا رسیدن به break اجرا می‌شود ولی اگر مقدار هیچ case ای با expression مطابقت نداشت، قسمت default اجرا می‌شود. اگر از default استفاده نکردید، هنگامی‌که هیچ تطابقی یافت نشد، هیچ اتفاقی نیز نخواهد افتاد.

 

دستور goto در سی شارپ: 

نکته : قبل از توضیح این دستور باید گفت اکثرا این دستور به دلیل ساخت یافته کردن شرایط برنامه استفاده نخواهد شد ؛ ضمنا سی شارپ طبق گفته ی قبل زبانی کاملا شی گرا می باشد .

goto یک jump statement غیر شرطی است. هنگامی‌که برنامه به این کلمه می‌رسد، به مکان مشخصی از کد که توسط goto مشخص شده است، پرش می‌کند. goto برای انجام عملیات نیاز به یک برچسب دارد. برچسب یکی از شناسه‌های سی‌شارپ است که بعد از آن علامت دونقطه (:) قرار می‌گیرد. برچسب باید در همان بلاک و متدی باشد که goto قرار دارد . به‌عنوان مثال، برنامه زیر یک حلقه است که اعداد ۱ تا ۲۰ را توسط goto و برچسب نمایش می‌دهد:

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

در این مثال ساختار دستور کنترلی switch درون یک حلقه‌ی با تکرار معین for قرار دارد و در هر دور حلقه، مقدار i به ساختار switch داده می‌شود. توجه کنید که در ساختار switch چگونه goto  به case های مختلف و default پرش می‌کند. نکته‌ی دیگر این‌جاست که case ها با break پایان نیافته‌اند (به‌جز default) چراکه استفاده از break در این‌جا بی‌مورد و بی‌تاثیر است زیرا هر case توسط goto  به case دیگری فرستاده شده و نهایتاً در قسمت default از ساختار switch خارج می‌شود. همان‌طور که گفته شد، نمی‌توانید از بیرون به درون ساختار switch پرش کنید و اگر علامت کامنت را از ابتدای آخرین خط‌کد برنامه حذف کنید، برنامه کامپایل نمی‌شود. استفاده از goto در ساختار switch در برخی موارد خاص می‌تواند مفید باشد اما پیشنهاد نمی‌شود.

 

برای استفاده از تمامی جلسات از هشتگ #دوره آموزشی_سی_شارپ در سایت ما استفاده کنید.

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

موفق و پیروز باشید.

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

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

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

*

code

مطالب زیر را از دست ندهید: