دستورات شرطی در سی شارپ (آموزش به زبان ساده)
دستورات شرطی (Decision making) یا همان تصمیم گیری در برنامه نویسی مشابه تصمیم گیری در زندگی واقعی است. در برنامه نویسی هم اگر شرایط خاصی برآورده شود، یک بلوک کد خاص اجرا خواهد شد.
برای تصمیم گیری در زبان های برنامه نویسی از دستورات شرطی یا کنترلی استفاده می شود که برای کنترل جریان اجرای برنامه بر اساس شرایط خاص به کار می روند. از این دستورات برای جلو بردن جریان اجرا براساس تغییر در وضعیت برنامه استفاده می شود.
دستورات شرطی در زبان برنامه نویسی سی شارپ (C#) عبارتند از:
- if
- if-else
- if-else-if
- Nested if
- Switch
- Nested switch
دستور if
دستور if شرط (های) تعیین شده را بررسی می کند. اگر نتیجه شرط درست ارزیابی شود، مجموعه کد و دستورات داخل بلوک if اجرا خواهد شد، در غیر این صورت کنترل برنامه، این بلوک کد را نادیده گرفته و اجرای برنامه را از بعد آن ادامه می دهد.
ساختار:
if(شرط)
{
// if دستورات بلوک
}
نکته: اگر از براکت ها {} در دستور if (یا سایر دستورات شرطی) استفاده نکنید، فقط یک دستور بعد از if به آن مرتبط می شود و در صورت برقراری شرط آن اجرا خواهد شد.
if (شرط)
دستور 1;
نیست// ;دستور2 if این دستور جز کد
اگر شرط دستور if درست باشد، دستور 1 اجرا می شود، در غیر اینصورت به دستور 2 می رود.
فلوچارت:
مثال
// C# program to illustrate if statement
using System;
public class GFG {
public static void Main(string[] args)
{
string name = “Sariasan”;
if (name == “Sariasan”) {
Console.WriteLine(“Sariasan”);
}
}
}
در خروجی “Sariasan” چاپ می شود.
دستور IF – else
در دستور if ساده در صورت برقراری شرط بلوک کد مرتبط با آن اجرا می شود اما اگر شرط برقرار نباشد، چی؟ در اینجا می توان از دستور else استفاده کرد. این به کد می گوید که در صورت نادرست بودن شرط چه کاری باید انجام دهد.
ساختار
if(شرط)
{
// کدهای مرتبط به برقرار بودن شرط
}
else
{
// کدهای مرتبط به برقرار نبودن شرط
}
فلوچارت
مثال
// if-else statement
using System;
public class GFG {
public static void Main(string[] args)
{
string name = “Sariasan”;
if (name == “Csharp”) {
Console.WriteLine(“GeeksForGeeksr”);
}
else {
Console.WriteLine(“Csharp”);
}
}
}
در خروجی Csharp را چاپ می کند.
دستور If – else – if
if-else-if دستور شرطی نردبانی است. اجرا از بالا شروع می شود، شرط if را بررسی می کند اگر برقرار و درست باشد سپس بلوک کد مرتبط با آن را اجرا خواهد شد، در غیر اینصورت به دستور else می رود و به همین ترتیب ادامه می دهد، در نهایت اگر هیچ کدام از شرط های if درست نباشد، آخرین بلوک دستور else (بدون if) اجرا خواهد شد.
ساختار
if(شرط اول)
{
// اگر شرط اول برقرار باشد، این دستورات اجرا می شوند
}
else if(شرط دوم)
{
// اگر شرط دوم برقرار باشد، این دستورات اجرا می شوند
}
else if(شرط سوم)
{
// اگر شرط سوم برقرار باشد، این دستورات اجرا می شوند
}
…
else
{
// اگر هیچ کدام از شرط ها برقرار نباشد، این دستورات اجرا می شوند
}
فلوچارت
مثال
// if-else-if ladder
using System;
class GFG {
public static void Main(String[] args)
{
int i = 20;
if (i == 10)
Console.WriteLine(“i is 10”);
else if (i == 15)
Console.WriteLine(“i is 15”);
else if (i == 20)
Console.WriteLine(“i is 20”);
else
Console.WriteLine(“i is not present”);
}
}
خروجی:
i is 20
دستور If تودرتو
دستور if داخل یک دستور if دیگر قرار می گیرد، این به عنوان دستور if تو در تو شناخته می شود. در اینجا هدف دستور if یا else دیگری است. از دستور if تو در تو زمانی استفاده می شود که بیش از یک شرط باید درست باشد و یکی از شرط ها زیر شرط والد باشد.
if (شرط1)
{
// اجرای دستورات در صورت برقراری شرط 1
برنامه نویسی سی شارپ رو قورت بده! بدون کلاس، سرعت 2 برابر، ماندگاری 3 برابر، پولسازی با ساخت اپلیکیشن، توسعه وب ... دانلود:
if (شرط2)
{
// اجرای دستورات در صورت برقراری شرط 2
}
}
فلوچارت
مثال
// nested-if statement
using System;
class GFG {
public static void Main(String[] args)
{
int i = 10;
if (i == 10) {
// Nested – if statement
// Will only be executed if statement
// above it is true
if (i < 12)
Console.WriteLine(“i is smaller than 12 too”);
else
Console.WriteLine(“i is greater than 15”);
}
}
}
خروجی
i is smaller than 12 too
دستور Switch
دستور Switch (سوئیچ) می تواند جایگزینی برای دستور if نردبانی با تعداد if-else-ifهای طولانی باشد. عبارت شرطی برای موارد مختلف بررسی می شود و در نتیجه کدهای مربوط به یکی تطبیق ها اجرا خواهد شد. دستور break برای خارج شدن از دستور Switch استفاده می شود. اگر break حذف شود، کنترل برنامه به بقیه موارد پایینی منتقل می شود تا زمانی که یا به یک break برسد یا دستور Switch تمام شود. در انتهای دستور Switch یک قسمت default (پیشفرض) به صورت اختیاری وجود دارد که اگر هیچ یک از موارد مطابقت نداشته باشد، دستورات این قسمت پیشفرض اجرا خواهد شد.
ساختار
switch (عبارت)
{
case مقدار1: // بلوک دستورات1
break;
case مقدار2: // بلوک دستورات2
break;
.
.
.
case nمقدار: // n بلوک دستورات
break;
default: // بلوک دستورات پیشفرض
}
فلوچارت
مثال
using System;
public class GFG
{
public static void Main(String[] args)
{
int number = 30;
switch(number)
{
case 10: Console.WriteLine(“case 10”);
break;
case 20: Console.WriteLine(“case 20”);
break;
case 30: Console.WriteLine(“case 30”);
break;
default: Console.WriteLine(“None matches”);
break;
}
}
}
خروجی
case 30
دستور Switch تودرتو
در برنامه نویسی C# دستور Switchتودرتو مجاز است. در این حالت یک دستور Switch داخل یک دستور Switch دیگر قرار می گیرد. دستور داخلی در یکی از موارد دستور بیرونی است.
مثال
// C# example for nested switch case
using System;
public class GFG
{
public static void Main(String[] args)
{
int j = 5;
switch (j)
{
case 5: Console.WriteLine(5);
switch (j – 1)
{
case 4: Console.WriteLine(4);
switch (j – 2)
{
case 3: Console.WriteLine(3);
break;
}
break;
}
break;
case 10: Console.WriteLine(10);
break;
case 15: Console.WriteLine(15);
break;
default: Console.WriteLine(100);
break;
}
}
}
خروجی
5
4
3
دانلود کنید: آموزش صفر تا صد سی شارپ (رایگان)