در بخش های قبل با عملگرهای ریاضی مانند جمع، تفریق و ... آشنا شدید که برای انجام عملیات محاسباتی استفاده می شوند. اگر قصد داشته باشید دو یا چند عبارت منطقی (شرط) را با یکدیگر ترکیب کنید، می بایست از عملگرهای منطقی استفاده نمایید. هنگامی که دو یا چند عبارت منطقی را با یکدیگر ترکیب می کنید، نتیجه نهایی نیز منطقی (true یا false) خواهد بود. مهمترین عملگرهای منطقی به شرح زیر می باشند.
عملگر NOT
این عملگر که با علامت ! در برنامه نویسی سی شارپ مشخص می گردد، نقیض ورودی می باشد به این معنی که اگر مقداری true باشد آن را به false و اگر false باشد به true تبدیل می کند.
bool b = true; Console.WriteLine(!b); --> false bool c = false; Console.WriteLine(!c); --> true
عملگر AND
از این عملگر به معنی "و" بوده و برای ترکیب سخت گیرانه دو شرط استفاده می شود. عملگر And در سی شارپ با علامت && مشخص می گردد. هنگامی که دو یا چند شرط را با استفاده از عملگر And ترکیب می کنیم، نتیجه تنها در زمانی true خواهد بود که همه شرط ها true باشند و حتی اگر یکی از شرط ها false باشد، نتیجه کلی false خواهد بود.
bool a = true; bool b = false; bool c = true; Console.WriteLine(a && b); --> false Console.WriteLine(a && c); --> true Console.WriteLine(b && c); --> false Console.WriteLine(a && b && c); --> false
عملگر OR
عملگر Or به معنی "یا" بوده و هنگامی که چند شرط توسط این عملگر با یکدیگر ترکیب می شوند، اگر حتی یکی از شرط ها true باشد نتیجه کلی true خواهد بود.
bool a = false; bool b = true; bool c = false; Console.WriteLine(a || b); --> true Console.WriteLine(a || c); --> false Console.WriteLine(b || c); --> true Console.WriteLine(a || b || c); --> true
تمرین: برنامه ای بنویسید که عددی را به عنوان شماره ماه از کاربر دریافت کرده و نام فصل را نمایش دهد.
تحلیل: همانطور که می دانید 12 ماه وجود و این 12 ماه در 4 فصل تقسیم می شوند. به عبارتی دیگر هر فصل دارای سه ماه می باشد. بنابراین می توان گفت اگر عدد ورودی بین 1 تا باشد در نتیجه منظور کاربر فصل بهار بوده است.
در سی شارپ بازه بین دو عدد به شکل زیر تعیین می گردد.
if(month >= 1 && month <= 3)
یعنی اگر عدد وارد شده بزرگتر مساوی 1 و کوچکتر مساوی 3 بود. بنابراین کدهای برنامه به شکل زیر خواهند بود.
static void Main(string[] args) { int month; Console.Write("Please enter month number: "); month = int.Parse(Console.ReadLine()); if(month >= 1 && month <= 3) { Console.WriteLine("Spring"); } else if (month >= 4 && month <= 6) { Console.WriteLine("Summer"); } else if (month >= 7 && month <= 9) { Console.WriteLine("Fall"); } else if (month >= 10 && month <= 12) { Console.WriteLine("Summer"); } else { Console.WriteLine("Invalid number"); } Console.ReadLine(); }