آموزش سیشارپ C# – بخش ۱۸
- مقدمه
در زبان برنامهنویسی سیشارپ، یکسری عملگرهای مهمی وجود دارند که میبایست حتماً آنها را بدانید؛ چراکه این عملگرها، در هنگام ساخت برنامهی خود، بشدت به آنها نیاز پیدا خواهید کرد. اصطلاحاً به این عملگرها، Conditional Operators میگویند.
- Conditional Operators
شما تاکنون با یک Conditional Operator (عملگر مقایسهای)، یعنی دو-مساوی (==) آشنا شدهاید. شما از این عملگر در دستورات شرطی IF از آن استفاده میکنید و مقدار داخل یک متغیر را توسط جملهای شبیه به «آیا دارای مقدار … است؟» بررسی میکنید. مثلاً:
if ( myVariable ==10)
{
//EXECUTE SOME CODES
}
پس در کد بالا درواقع مقدار داخل myVariable را بررسی میکنیم که آیا دارای مقدار ۱۰ است یا خیر! سپس اگر دارای چنین مقداری بود، کدهای داخل دستور شرطی IF اجر شوند. از جمله Conditional Operator های دیگر که احتمالاً در آینده بسیار بدرد خواهند خورد و کاربرد آنها بسیار زیاد است، دستورات زیر میباشد:
اکنون که شما این چند Conditional Operators مهم را فراگرفتید، اجازه دهید که باهمدیگر اینها را تمرین کنیم تا دقیقاً متوجه کاربرد آنها شوید.
یک پروژهی جدید بسازید و در آن دو عدد Text Box قرار دهید. یک button هم اضافه کنید. در propertyهای Text مربوط به Text Box ها، در اولین Text Box عدد ۸ را وارد کنید و در دومی، عدد ۷.
Text مربوط به button رو نیز به عبارت Compare (=مقایسه) تغییر دهید. اکنون فرم شما به شکل زیر است:
بر روی button دابل-کلیک کنید تا وارد بخش کدها شوید. کاری که ما انجام میدهیم این است که شمارهها را از Text Box ها میگیرم و آنها را با یکدیگر مقایسه میکنیم. پس اولین کار ما، تعریف دو متغیر از نوع int است.
int firstNumber;
int secondNumber;
سپس عددهای داخل Text Box را دریافت میکنیم (که بصورت String هستند) و با استفاده از متد Parse، آنها را به مقدار int تغییر میدهیم.
firstNumber = int.Parse(textBox1.Text);
secondNumber = int.Parse(textBox2.Text);
الان ما باید کدی بنویسیم که این دو عدد را با یکدیگر مقایسه کند و تعیین کند که کدام یک از ارقام، از دیگری بزرگتر است. درواقع سوال را باید بدین شکل طرح کرد؛ «آیا رقم اول، از رقم دوم بزرگتر است؟»
برای پاسخ دادن به این سوال بهشکل برنامهنویسی، میتوان از دستور شرطی IF استفاده نمود. همچنین برای تعیین بزرگتر با کوچکتر بودن ارقام، میتوان از Conditional Operator که در بالا معرفی کردیم، استفاده کنیم. پس بدینشکل کدهایمان را مینویسیم:
if (firstNumber > secondNumber)
{
MessageBox.Show(“The first number was greater than the second number”);
}
اکنون باید بخش کدنویسی شما شبیه به زیر شده باشد:
حال بهسراغ تشریح کدهایی که نوشتیم بپردازیم؛ در داخل دستور if بین دو پرانتز، ما در واقع دو متغیری را که قبلاً تعریف کردهبودیم را با یکدیگر مقایسه میکنیم. با استفاده از Conditional Operator که در اول آموزش در رابطه با آن توصیح دادیم، ما با استفاده از علامت بزرگتر، سعی کردیم که رابطهای میان این دو متغیر ایجاد کنیم؛ در واقع این دو را با یکدیگر مقایسه کنیم.
برنامهی خود را اجرا کنید. بر روی button کلیک کنید؛ خواهید دید که MessageBox که در کدهایتان تعریف کردهاید برای شما نمایش داده میشود. اکنون در اولین Text Box عدد ۶ را بنویسید. دوباره بر روی Button کلیک کنید؛ اینبار اتفاقی نمیافتد. دلیل آن، این است که در دستور IF ما فقط این موضوع را بررسی کردیم که آیا متغیر firstNumber از secondNumber بزرگتر است یا خیر، اما حالت برعکس آن را بررسی نکردیم. پس کدی را به کدهایمان اضافه میکنیم. داریم:
if (firstNumber < secondNumbe)
{
MessageBox.Show(“The first number was less than the second number.”);
}
دوباره برنامه خود را اجرا کنید و حالتهای مختلف را امتحان کنید. خواهید دید که در همه حال (تنها حالتی که دو رقم با هم برابر باشند) Message Box برای شما نمایش داده خواهد شد.
برای حالت مساوی، یکی از روشها استفاده از علامت دومساوی (==) میباشد. اما حالت دیگر استفاده از نماد بزرگتر مساوی و یا کوچکتر مساوی میباشد (<= و یا >=)
دستور Conditional Operator بعدی ما، علامت مساوی نیست (!=) میباشد. با استفاده از این عملگر، شما تعیین میکنید که آیا دو متغیر (یا دو مقدار) با هم برابر هستند یا نه. به کد زیر دقت کنید:
if (firstNumber != secondNumber)
{
//SOME CODE HERE
}
پس کد بالا با این مفهوم ترجمه میشود: «اگر مقدار firstNumber برابر نباشد با مقدار secondNumber، پس کدهای داخل دستور IF را اجرا کن.»
در رابطه با عملگرهای منطقی همانند OR، NOT، AND و …، اگر کمی با ریاضیات آشنایی داشته باشید، میدانید که چگونه در عمل از آنها استفاده میشود. بنابراین ترجیح میدهم که اگر با آنها آشنایی ندارید، در اینترنت جستجو کرده و کمی با آنها آشنا شوید.
علامت عملگر منطقی NOT، بهشکل علامت تعجب (!) میباشد. به کد زیر دقت کنید:
bool testValue = false;
if (!testValue)
{
MessageBox.Show(“Value was false.”);
}
عملگر NOT، مقدار True را به False، و مقدار False را به True تبدیل میکند. پس در کد بالا وقتی که عملگر NOT را همراه با متغیر testValue میآوریم، مقدار آن را از False به True تبدیل میکند؛ درنتیجه نتیجه داخل پرانتز مربوط به IF بهصورت True خواهد شد، پس کدهای درون آن اجرا میشوند.
جهت دریافت این بخش آموزشی بصورت یک فایل PDF، اینجا را کلیک کنید.
با سلام و تشکر
اگه قسمتی از کتاب اُ ریلی رو برای نمونه بذارین یا اگه کلشو برای دانلود بذارین ممنون میشم
با سلام،
متأسفانه چونکه کتاب پولی هست و من کتاب رو بصورت رایگان (غیر قانونی و غیراخلاقی) دریافت کردم، بهخاطر همین نمیخوام عامل نشر آن بشکل غیرقانونی و ضایع کردن حق نویسنده باشم.
موفق باشید!
فقط برای نمونه چند صفحه که اشکالی نداره؟
میخام متن انگلیسیشو ببینم
فقط یه مبحث چند صفحه ای!!
ممنون
سلام،
به روی چشمم؛ سعی میکنم یک چند صفحه بهصورت نمونه برای شما و دوستان آماده کنم.
موفق باشید!
سلام دوست عزیزم،
این لینک رو مطالعه کنید: http://shop.oreilly.com/product/0636920024064.do
اگر یکمی پایین بیاید، میبینید که عکسی از کتاب هست که روش نوشته شده: Free Sampler
شما میتونید روی اون کلیک کنید و بخشی از کتاب رو داشته باشید.
در بخش بعدی آموزش برای دوستان داخل خود مطلب این لینک رو معرفی خواهم کرد.
موفق باشید!
سلام
متاسفانه این لینک جهت دریافت این بخش آموزشی بصورت یک فایل PDF، اینجا را کلیک کنید. کار نمیکنه
سلام دوست عزیز،
ممنونم از گزارشتون. مشکل برطرف شد. لطفاً دانلود کنید.
با تشکر.
سلام
با تشکر لطفا فاصله زمانی بین پست ها رو کمتر کنید…بنظرم خیلی کنده جلو میرید…
مرسی
سلام دوست عزیز،
من تمامی سعیام رو میکنم که زود به زود آموزشها رو روی سایت قرار بدم! اگر بعضی از سریها دیر آماده میشن امیدوارم که منو ببخشید، بالاخره ما هم فردی هستیم مثل همه مردم و بعضی مواقع برای ما هم مشکلاتی پیش میاد.
باعرض معذرت مجدد،
موفق باشید!
سلام
میخواستم “برنامه نویسی شی گرا “سی شارپ یاد بگیرم
به نظرت از چه منبعی استفاده کنم؟
چه کتابی خوبه؟
سایت آموزشی؟
سلام دوست عزیزم،
من خودم سعیام رو میکنم که وارد مبحث شیءگرایی بشم توی این سری از آموزشهای سیشارپام (چونکه اصلیترین مبحث همینه)، اما اگر دوست دارید زودتر یاد بگیرید، میتونید از سایتی که من ازش در حال ترجمه و ویرایش این سری آموزشی هستم استفاده کنید، یا کتابی که قبلاً معرفی کردم.
البته اگر تخصصی میخواید فقط دنبال شیءگرایی برید، بهدنبال کتابهایی با عنوانهایی که شبیه به Object-Oriented Programming باشند بگردید، قطعاً موارد خوبی پیدا خواهید کرد.
موفق باشید!
ممنون بابت نمونه از کتاب اُ ریلی
محبت کردی:)
ممنون
سلام ببخشید من وقتی میخوام یک تکس باکسو با چند تا تکس باکس مقایسه کنم این ارور رو میدهInput string was not in a correct format. ممنون میشم اگه جوابو بهم ایمیل کنید
تا اخرش رفتم خوب بود
فقط اخرش یک بد شد
and
or
رو هم می گفتید دیگه
یکم اونا سخت ترن چون به مباحت سیستم برمیگردن کاش اون ها رو هم می گفتید