بررسی شرط با استفاده از ساختار if در سی شارپ

از ساختار if برای بررسی شرط استفاده می شود. شرط ها تنها یک جواب دارند و آن می تواند true یا false باشد، بنابراین توسط این دستور می توان در صورت درست بودن یک شرط، گروهی از دستورات و در صورت غلط بودن آن گروهی دیگر از دستورات را اجرا نمود.

نحوه استفاده از if

برای استفاده از این ساختار می بایست شرط مورد نظر را درون پرانتز قرار داد. علائم قابل استفاده برای بررسی شرط به شرح زیر می باشند:

مساوی: ==

نا مساوی (مخالف): =!

بزرگتر: <

کوچکتر: >

بزرگتر مساوی: =<

کوچکتر مساوی: =>

 

if(number < 10)
{
    Console.WriteLine("Yes");
}
else
{
    Console.WriteLine("No");
}

 

در این مثال اگر محتوای متغیر number بزرگتر از 10 باشد، پیغام Yes و در غیر اینصورت پیغام NO اجرا می شود. بدیهی است دستورات داخل else هنگامی اجرا می شود که نتیجه شرط false باشد.

نکته: از آنجا که دستور if دارای بدنه می باشد، در انتهای تعریف آن نباید از علامت ; استفاده نمود، اما در انتهای تمامی دستورات داخل آن می بایست از علامت ; به معنای پایان دستور استفاده نمود.

تمرین: برنامه ای بنویسید که عددی را از کاربر دریافت کرده و زوج یا فرد بودن آن را تشخیص دهد.

تحلیل: در این برنامه نیاز به تعریف یک متغیر می باشد. نکته دیگری که باید توجه داشت آن است که اعدادی زوج می باشند که باقی مانده تقسیم آنها برابر 0 می باشد، بنابراین می بایست پس از دریافت این عدد از کاربر، باقیمانده تقسیم عدد بر 2 را بررسی نماییم.

static void Main(string[] args)
{
    int number;
    Console.WriteLine("Please enter a number: ");
    number = int.Parse(Console.ReadLine());
    if(number % 2 == 0)
    {
        Console.WriteLine("Even");
    }
    else
    {
        Console.WriteLine("Odd");
    }
    Console.ReadLine();
}

همانطور که پیش تر توضیح داده شد، از علامت % برای بدست آوردن باقیمانده تقسیم و از علامت == برای بررسی شرط مساوی بودن استفاده می شود.

بررسی بیش از دو حالت

در بسیاری از مواقع ما نیاز خواهیم داشت بیش از دو حالت را بررسی نماییم. در این صورت می توان شروط بعدی را توسط else if و به شکل زیر بررسی نمود.

if(condition 1)
{
                
}
else if(condition 2)
{

}
else if(condition 3)
{

}
else
{

}

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

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

تحلیل: در این تمرین ما 7 حالت مجاز برای 7 روز هفته و یک حالت غیر مجاز برای ورود اطلاعاتی خارج از محدوده 1 تا داریم بنابراین کدها به شکل زیر خواهد بود.

static void Main(string[] args)
{
    int day;
    Console.WriteLine("Please enter day: ");
    day = int.Parse(Console.ReadLine());
    if (day == 1)
    {
        Console.WriteLine("Saturday");
    }
    else if (day == 2)
    {
        Console.WriteLine("Sunday");
    }
    else if (day == 3)
    {
        Console.WriteLine("Monday");
    }
    else if (day == 4)
    {
        Console.WriteLine("Tuesday");
    }
    else if (day == 5)
    {
        Console.WriteLine("Wenesday");
    }
    else if (day == 6)
    {
        Console.WriteLine("Thursday");
    }
    else if (day == 7)
    {
        Console.WriteLine("Friday");
    }
    else
    {
        Console.WriteLine("Invalid number");
    }
    Console.ReadLine();
}

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

static void Main(string[] args)
{
    int month;
    Console.Write("Please enter month number: ");
    month = int.Parse(Console.ReadLine());
    if (month == 1)
    {
        Console.WriteLine("Farvardin");
    }
    else if (month == 2)
    {
        Console.WriteLine("Ordibehesht");
    }
    else if (month == 3)
    {
        Console.WriteLine("Khordad");
    }
    else if (month == 4)
    {
        Console.WriteLine("Tir");
    }
    else if (month == 5)
    {
        Console.WriteLine("Mordad");
    }
    else if (month == 6)
    {
        Console.WriteLine("Shahrivar");
    }
    else if (month == 7)
    {
        Console.WriteLine("Mehr");
    }
    else if (month == 8)
    {
        Console.WriteLine("Aban");
    }
    else if (month == 9)
    {
        Console.WriteLine("Azar");
    }
    else if (month == 10)
    {
        Console.WriteLine("Dey");
    }
    else if (month == 11)
    {
        Console.WriteLine("Bahman");
    }
    else if (month == 12)
    {
        Console.WriteLine("Esfand");
    }
    else
    {
        Console.WriteLine("Invalid number");
    }
    Console.ReadLine();
}

در این تمرین برای نمایش پیغام قبل از دریافت اطلاعات به جای دستور WriteLine از Write استفاده شده است. هنگامی که از WriteLine استفاده می کنید، پیغام را چاپ کرده و به خط بعدی منتقل می شود اما هنگام استفاده از Write در همان خطی که اطلاعات نمایش داده شده است، منتظر ورودی می ماند که این کار باعث شکیل تر شدن پیغام نمایشی می شود.