معرفی ساختارهای کنترلی در سی شارپ #C

معرفی ساختارهای کنترلی در سی شارپ #C
در حالت عادی ، دستورات برنامه از اولین دستور به آخرین دستور اجرا میشوند. اگر بخواهیم بعضی از دستورات چندین بار اجرا شوند و بعضی از دستورات تحت شرایط خاصی اجرا شوند و بعضی دیگر اجرا نشوند، از ساختارهای کنترلی استفاده میکنیم. ساختارهای کنترلی به دو دسته ساختارهای تکرار و تصمیم تقسیم میشوند. برنامه های مهم و پیچیده بدون استفاده از ساختارهای تصمیم و حلقه های تکرار قابل پیاده سازی نیستند.
ساختارهای تصمیم
اگر بخواهیم تحت شرایطی، تعدادی از دستورات اجرا شوند و یا تعداد دیگری از دستورات اجرا نشوند ، باید از ساختارهای تصمیم استفاده میکنیم. این ساختارها، شرطی را تست کرده و رد صورت درست بودن شرط، مجموعه ای از دستورات اجرا میشوند. ساختارهای تصمیم که در #C وجود دارند عبارتند از: if و switch.
♦ ساختار تصمیم if
این ساختار ، شرطی را تست میکند و در صورتیکه آن شرط دارای ارزش درستی باشد، مجموعه ای از دستورات را اجرا میکند. کاربرد دستور if بصورت زیر است:
if (شرط)
دستور 1;
else
دستور2;
♦ ساختار if تودرتو
اگر بخواهیم از دستور if برای تست شرط های متعددی استفاده کنیم، باید آنها را بصورت تودر تو بکار ببریم. کاربرد if بصورت تودرتو نه تنها موجب طولانی شدن برنامه میشود، بلکه از خوانایی برنامه نیز میکاهد. ساختار else if میتواند به جای if های تودرتو بکار رود و میزان خوانایی برنامه را بالا ببرد. در این ساختار ، اگر شرط 1 دارای ارزش درستی باشد، دستور 1 اجرا خواهد شد و کنترل برنامه به دستور بعد از دستور else انتقال می یابد و در غیر این صورت این روند ادامه می یابد. چنانچه هیچ یک از شرط ها دارای ارزش درستی نباشند، دستور else اجرا خواهد شد:
if (شرط)
دستور 1;
else if (شرط2)
دستور2;
else if (شرط3)
دستور3;
...
else if (nشرط)
nدستور;
else
else دستور;
♦ ساختار تصمیم switch
ساختار switch یکی از ساختارهای جالب و مهم است. از این ساختار برای تصمیم گیری های چندگانه براساس مقادیر مختلف یک عبارت، استفاده میشود. بطور کلی در تمام تصمیم گیری هایی که بیش از سه انتخاب وجود دارد، بهتر است از ساختار switch استفاده شود. این ساختار بصورت زیر بکار میرود:
switch (عبارت){
case <مقدار1>:
<دستورات1>
break;
case <مقدار2>:
<دستورات2>
break;
. ...
default:
break;
}
ساختارهای تکرار
همانطور که گفته شد یکی دیگر از ساختارهای کنترلی در #C ساختار تکرار است.ماهیت بسیاری از کارها تکراری است. مثل خواندن اسامی تعداد 10 دانشجو، خواندن 10 عدد صحیح و محاسبه مجموع آنها. برای انجام کارهایی که ماهیت آنها تکراری است، در #C از امکاناتی بنان حلقه های تکرار استفاده میشود. حلقه های تکرار در #C عبارتنداز: for,while,do و foreach .
♦ ساختار تکرار for
ساختار تکرار for یکی از امکانات ایجاد حلقه است و معمولا در حالتی بکار میرود که تعداد دفعات تکرار حلقه از قبل مشخص باشد. در این ساختار متغیری وجود دارد که تعداد دفعات تکرار را کنترل میکند. این متغیر شمانده یا اندیس حلقه تکرار نام دارد. اندیس حلقه دارای مقدار اولیه است و در هربار اجرای دستورات حلقه، مقداری به آن اضافه میشود که گام حرکت حلقه نام دارد. گام حرکت حلقه میتواند عددی صحیح و اعشاری، مثبت یا منفی، و یا کراکتری باشد. یکی دیگر از اجزای حلقه for، شرط حلقه است. شرط حلقه مشخص میکند که دستورات داخل حلقه تا کی باید اجرا شوند. اگر شرط دارای ارزش درستی باشد دستورات حلقه اجرا میشوند وگرنه کنترل برنام از حلقه خارج میشود. دستور for را میتوان به دو صورت بکار برد.
روش اول:
for (گام حرکت;شرط حلقه;مقدار اولیه اندیس حلقه){
دستور1;
دستور2;
...
nدستور;
}
روش دوم:
for (;;){
دستور1;
دستور2;
...
nدستور;
}
♦ ساختار تکرار while
ساختار تکرار while یکی دیگر از امکاناتی است که برای تکرار اجرای دستورات بکار میرود. وقتی دستورات تکرار شونده، بیش از یکی باشند باید بین آنها } و { قرار داد.پس از اینکه اجرای برنامه به این دستور رسید شرط حلقه تست میشود. اگر شرط دارای ارزش درستی باشد، دستورات حلقه اجرا میشوند وگرنه کنترل برنامه از حلقه خارج میشود. برای اینکه حلقه خاتمه پیدا کند باید شرط در داخل حلقه نقض شود. اگر همیشه شرط حلقه درست باشد حلقه تکرار بی نهایت ایجاد میشود. این ساختار بصورت زیر بکار میرود.
while (شرط){
دستور1;
دستور2;
...
nدستور;
}
♦ ساختار تکرار do
ساختار تکرار do مانند ساختار تکرار while است. با این تفاوت که در ساختار while شرط حلقه در ابتدای حلقه تست میشود، در حالیکه در ساختار do شرط حلقه در انتهای حلقه تست میشود. بنابراین دستورات موجود در حلقه do در هر حال، حداقل یکبار اجرا میشوند.
در این ساختار نیز وقتی تعداد دستورات تکرار شونده بیش از یکی باشد، دستورات بین } و { قرار میگیرند. چنانچه شرط حلقه در داخل حلقه تکرار نقض نشود. این ساختار نیز حلقه تکرار بی نهایت را ایجاد خواهد کرد. این ساختار بصورت زیر بکار میرود:
do {
دستور1;
دستور2;
...
nدستور;
}while (شرط);
لطفا کمی بیشتر راجب حلقه ها توضیح بدیدحلقه های پیچیده و ترکیبی رو هم شرح بدیدممنون از حمایت بالای شما از انجمن برنامه نویسی