بررسی دستور شرطی IF در سی شارپ

یکشنبه 4 مرداد 1394

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

بررسی دستور شرطی IF در سی شارپ

انواع عبارت شرطی در C#

مباحث موجود در این مقاله:

1- معرفی

2- تعریف عبارت شرطی

3- چرا if یک عبارت شرطی ست

4- استفاده از عبارت شرطی

5- انواع عبارت شرطی

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

تعریف:

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

چرا if یک عبارت شرطی ست؟

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

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

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

ساختار دستوری:

(if (condition   
{  
    True part statements;  
} else   
{  
    False part statements;  
}

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

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

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

انواع عبارت شرطی وجود دارد که در زیر آورده و به شرح آنها می پردازیم.

If

If else

If های تو در تو

Else if

عملگر سه تایی

If  ساده:

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

مثال 1:

(static void Main(string[] args
{  
    int a, b;  
    a = 10;  
    b = 5;  
    if (a > b) //condition true  
    Console.WriteLine("A Value Is Greater");  
    Console.Read();  
}

خروجی:

A Value Is Greater

مثال 2:

(static void Main(string[] args   
{  
    int a, b;  
    a = 10;  
    b = 5;  
    if (a < b) // condition false  
    Console.WriteLine("A Value Is Greater");  
    Console.Read();  
} 

خروجی:

در این مثال هیچ خروجی نداریم. زیرا شرط (a<b) برقرار نیست. همانطور که گفته شد، در  If ساده فقط بخش True داریم. بنابراین اگر شرط برقرار نباشد، بخش False وجود ندارد تا دستوات آن اجرا شود.

دستور شرطی If else:

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

مثال 3:

(static void Main(string[] args  
{  
    int a, b;  
    a = 10;  
    b = 5;  
    if (a > b) // condition true  
    Console.WriteLine("A Value Is Greater");  
    else Console.WriteLine("B Value Is Greater");  
    Console.Read();  
} 

خروجی:

A Value Is Greater

در این مثال شرط برقرار است و فقط بخش True  اجرا می شود.

مثال 4:

(static void Main(string[] args  
{  
    int a, b;  
    a = 10;  
    b = 5;  
    if (a < b) // condition false  
    Console.WriteLine("A Value Is Greater");  
    else Console.WriteLine("B Value Is Greater");  
    Console.Read();  
} 

خروجی:

B Value Is Greater

در این بخش، به دلیل عدم برقرای شرط، دستورات بخش False اجرا می شوند.

If های تو در تو:

وفتی یک عبارت If، درون یک عبارت If دیگر قرار دارد، به این نوع، If های تو در تو گفته می شود. هرعبارت  If خودش به طور جداگانه،  دارای بخش های Trueو False می باشد.

مثال 5:

(static void Main(string[] args
{  
    int a, b;  
    a = 10;  
    b = 5;  
    if (a < b) // condition false  
    Console.WriteLine("A Value Is Greater");  
    else Console.WriteLine("B Value Is Greater");  
    Console.Read();  
} 

خروجی:

A Value Is Greater

این مثال یک if تو در تو را نشان می دهد. در نظر بگیرید در بخش True یا False بیش از یک خط وجود دارد. بنابراین ما باید از پرانتز باز و بسته استفاده کنیم، وگرنه خطا ایجاد می شود.

-مثال:

(if (a > b   
if (a > c) Console.WriteLine("A Value Is Greater") 
Console.WriteLine("A Value Is :" + a);  
Else // Invalide expression terms ‘else’  
Console.WriteLine("C Value Is Greater");  
else if (b > c)   
Console.WriteLine("B Value Is Greater");  
else   
Console.WriteLine("C Value Is Greater"); 

در این مثال خطا ایجاد می شود. زیرا بخش True بیش از یک خط است. ما می توانیم این مشکل را به صورت زیر حل کنیم.

(if (a > b) if (a > c   
{  
   Console.WriteLine("A Value Is Greater" 
    Console.WriteLine("A Value Is :" + a);  
}   
else Console.WriteLine("C Value Is Greater");  
else if (b > c) Console.WriteLine("B Value Is Greater");  
else Console.WriteLine("C Value Is Greater");

در اینجا با گذاشتن دو دستور موجود در بخش True در پرانتز باز و بسته، دیگر خطا ایجاد نخواهد نشد.

Else If

نوع Else If یکی از مهم ترین عبارات شرطی می باشد. این نوع دارای جملات شرطی زیادی است. تمام شرط ها قدم به قدم بررسی می شوند تا وقتی که مقدار True را به دست بیاورد. اگر یکی از شرط ها درست باشد، دستورات آن اجرا شده و از برنامه خارج می شود.

این شکل جریان کار در یک دستور شرطی Else If را نشان می دهد.

مثال 6:

if (a > b) if (a > c)   
{  
    Console.WriteLine("A Value Is Greater");  
    Console.WriteLine("A Value Is :" + a);  
}   
else Console.WriteLine("C Value Is Greater");  
else if (b > c) Console.WriteLine("B Value Is Greater");  
else Console.WriteLine("C Value Is Greater");

خروجی:

First Greater

عملگر سه تایی:

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

دو عملگر که در عملگر سه تایی استفاده می شوند، علامت سوال (؟) و سمی کالن ( : ) است.

ساختار دستوری:

Variable = condition? True Part : False Part;

متغیر= شرط ؟ بخش True: بخش False

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

؟ مانند if و : مانند else می باشد.

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

مثال 7:

static void Main(string[] args)   
{  
    int a, b, retValue;  
    a = 10;  
    b = 5;  
    retValue = a > b ? a : b;  
    Console.WriteLine("Greater Value:" + retValue);  
    Console.Read();  
  
}  

خروجی:
Greater Value: 10 

مثال 8:

1.	static void Main(string[] args)   
2.	{  
3.	    int a, b, retValue;  
4.	    a = 10;  
5.	    b = 5;  
6.	    retValue = a > b ? a : b;  
7.	    Console.WriteLine("Greater Value:" + retValue);  
8.	    Console.Read(); 
9.	} 

خروجی:

Greater Value: 20 

مثال 9:

1.	static void Main(string[] args)   
2.	{  
3.	    int a, b, c, retValue;  
4.	    a = 10;  
5.	    b = 20;  
6.	    c = 30;  
7.	    retValue = a > b ? a > c ? a : c : b > c ? b : c;  
8.	    Console.WriteLine("Greater Value:" + retValue);  
9.	    Console.Read();  
10.	} 

خروجی:

Greater Value: 30 

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

در اپراتور سه تایی تو در تو، ما بیش از یک شرط و بیش از یک بخش  True  وFalse براساس شرط داریم.

نتیجه:

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

آموزش سی شارپ

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 19k بازدید
  • 6 تشکر

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

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید