آموزش #C | بخش چهارم – دستورات شرطی در c#

ساختارهای تصمیم گیری در #C

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

انواع دستورات شرطی در c#

دستور if

if (condition)
{
    code to execute;
}

اولین و احتمالا پرکاربردترین نوع از انواع دستورات شرطی در c# ، دستور if است. وقتی برنامه به دستور if می‌رسد اول شرط بررسی می‌شود؛ اگر شرط درست باشد، دستورات داخل بدنه اجرا می‌شود. در غیر این صورت برنامه به دستوراتِ بعد از دستور if می‌رود. در داخل پرانتز شرط قرار می‌گیرد، شرط باید عبارتی باشد که حاصل آن صفر یا یک منطقی باشد یا بهتر بگوییم باید حاصل عبارت از نوع boolean باشد در غیر این صورت به خطا بر می‌خورید. در زیر یک مثال ساده را مشاهده می‌کنید.

int number = 5;
if (number > 3)
{
    console.WriteLine("Hello Rasdino!!!");
}
Hello Rasdino!!!

دستور if – else

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

if (condition)
{
    code to execute if condition is true
}
else
{
    code to execute if condition is false
}

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

int number = 5;
if (number < 3)
{
    console.WriteLine("Hello Rasdino!!!");
}
else
{
    console.WriteLine("Welcome to Rasdino!!!");
}
Welcome to Rasdino!!!

عملگر شرطی

این عملگر همانند دستور if – else است و موقعی کاربرد دارد که ما بخواهیم در بدنه ساختار if و else یک دستور بنویسیم. در غیر این صورت عملگر شرطی باعث کاهش خوانایی برنامه می‌شود.

Boolean Expression ? First Statement : Second Statement

به دو مثال زیر توجه کنید:

int number = 5;
string str;
str = (number > 3) ? "Hello Rasdino" : "Welcome to Rasdino";
Console.WriteLine(str);

****************************************************************************

int number = 0;
string str;
str = (number > 3) ? "Hello Rasdino" : "Welcome to Rasdino";
Console.WriteLine(str);
Hello Rasdino

****************************************************************************

Welcome to Rasdino

در برنامه اول چون شرط برقرار است، رشته اول را در متغیر str قرار می‌دهد. در برنامه دوم چون شرط برقرار نیست، رشته دوم را در متغیر str قرار می‌دهد.

عملگر شرطی تودرتو

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

Boolean Expression 1 ? First Statement : Boolean Expression 2 ? Second Statement 
: Boolean Expression 3 ? Third Statement : Forth Statement

در این حالت اول Boolean Expression 1 بررسی می‌شود، اگر درست باشد First Statement اجرا می‌شود. در غیر این صورت Boolean Expression 2 بررسی می‌شود، اگر درست باشد Second Statement اجرا می‌شود. در غیر این صورت Boolean Expression 3 بررسی می‌شود، اگر درست باشد Third Statement اجرا می‌شود. در غیر این صورت Forth Statement اجرا می‌شود. و به همین ترتیب می‌توان ادامه داد.

در زیر یک مثال را مشاهده می‌کنید.

int x = 5, y = 3;
string result;
result = (x > y) ? "x is greater than y" : (x < y) ? "x is less than y" : (x == y) ? "x is equal to y" : "No result";
Console.WriteLine(result);
x is greater than y

دستور switch

switch(expression)
{
    case <value1>
        // code block
        break;
    case <value2>
        // code block
        break;
    case <valueN>
        // code block
        break;
    default 
        // code block
        break;
}

#C دارای ساختاری به نام switch است. ساختار switch به عنوان یکی از دستورات شرطی در c# ، بسیار پر کاربرد بوده و این امکان را به ما می‌دهد که به ازای مقادیر ثابتِ مختلفِ یک متغیر، انتخاب های مختلفی داشته باشیم. در ساختار بالا به جای expression یک متغیر قرار می‌گیرد و به جای value ها، وابسته به نوع متغیر، اعداد، رشته‌ها یا کاراکترها قرار می‌گیرند. اگر هیچ کدام از value ها با مقدار متغیر برابر نباشند بخش default اجرا می‌شود و نوشتن بخش default نیز دلخواه است. توجه داشته باشید در هر بار اجرای ساختار switch همواره فقط یک case اجرا می‌شود و بعد از اجرا شدن دستورات مرتبط با آن case، دستور break اجرا می‌شود و برنامه ساختار switch را ترک می‌کند.

به مثال زیر توجه کنید.

int x = 2;
switch (x)
{
    case 1: Console.WriteLine("x is equal to 1"); break;
    case 2: Console.WriteLine("x is equal to 2"); break;
    case 3: Console.WriteLine("x is equal to 3"); break;
    case 4: Console.WriteLine("x is equal to 4"); break;
    case 5: Console.WriteLine("x is equal to 5"); break;
    default: Console.WriteLine("This is default statement"); break; 
}
x is equal to 2

اگر x برابر با 100 باشد:

This is default statement

می‌توان به جای اعداد در value ها از ثابت ها استفاده کرد.

int x = 3;
const int x1 = 1;
const int x2 = 2;
const int x3 = 3;
const int x4 = 4;
switch (x)
{
    case x1: Console.WriteLine("x is equal to 1"); break;
    case x2: Console.WriteLine("x is equal to 2"); break;
    case x3: Console.WriteLine("x is equal to 3"); break;
    case x4: Console.WriteLine("x is equal to 4"); break;
    default: Console.WriteLine("This is default statement"); break; 
}
x is equal to 3

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

const dataType variableName = value;

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

int x = 5;
switch (x)
{
    case 1: 
    case 2: 
    case 3: Console.WriteLine("x is equal to 1,2,3"); break;
    case 4:
    case 5:
    case 6: Console.WriteLine("x is equal to 4,5,6"); break;
    default: Console.WriteLine("This is default statement"); break;
}
x is equal to 4,5,6

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

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

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