عملگرهای حسابی
از عملگرهای مرسوم ریاضی در برنامهنویسی به همان روش استفاده از آنها در ریاضیات استفاده میکنیم. البته برخی نکات ریز دارند که در ادامۀ مسیر با آنها بیشتر آشنا میشویم.
محاسبات ریاضی روی اعداد
برای محاسبات ریاضی میتوانیم از علامتهای معمول ریاضی + (جمع)، - (تفریق)، * (ضرب)، / (تقسیم)، و % (باقیمانده) برای متغیرهای عددی (هم اعداد صحیح و هم اعداد اعشاری) استفاده کنیم. برای مثال دو عدد صحیح را به روش زیر با هم جمع کنیم و نتیجۀ آن را نمایش دهیم:
int number1 = 10;
int number2 = 20;
int sum = number1 + number2;
Console.WriteLine(sum);
که عدد 30 را در کنسول نشان میدهد.
در این قطعه کد هدف نمایش جمع دو عدد صحیح است. ابتدا یک متغیر عدد صحیح به نام number1 تعریف کردیم و مقدار 10 را به آن تخصیص دادیم. یک متغیر عدد صحیح دیگر به نام number2 تعریف کردیم و مقدار 20 را به آن تخصیص دادیم. سپس یک متغیر به نام sum تعریف کردیم و مجموع این دو عدد را به آن تخصیص دادیم.
دقت کنید ابتدا number1 + number2 محاسبه میشود که برابر با 30 است، سپس به متغیر sum تخصیص داده میشود. در این مرحله sum = 30 میشود.
ابتدا محاسبات سمت راست علامت = (مساوی) انجام شده و سپس به متغیر سمت چپ تخصیص داده میشود.
به همین دلیل میتوان کدی نوشت که با ریاضیات معمول کمی متفاوت است، اما بسیاری از محاسبات را کوتاهتر میکند. فرض کنید میخواهیم قطعه کدی بنویسیم که تعداد افراد را در خود ذخیره کرده باشد و سپس آن را به اندازۀ یک واحد اضافه کنیم. در صورتی که چنین رفتاری در C# وجود نداشت، میبایست قطعه کد زیر را برای این کار مینوشتیم:
int countOfPeople = 100;
int oneMore = countOfPeople + 1;
countOfPeople = oneMore;
برای کوتاهتر شدن و خوانایی بیشتر کد میتوانیم از روش مرسوم زیر استفاده کنیم:
int countOfPeople = 100;
countOfPeople = countOfPeople + 1;
در این قطعه کد عبارت countOfPeople = countOfPeople + 1; را میبینیم. با توجه به قانونی که گفته شد، ابتدا سمت راست علامت = محاسبه میشود (یعنی countOfPeople + 1 محاسبه میشود و برابر با 101 میشود)، سپس به متغیر سمت چپ تخصیص داده میشود (یعنی countOfPeople برابر 101 میشود).
سه عدد صحیح بین 100 و 100- در نظر بگیرید. قطعه کدی بنویسید که حاصلضرب این سه عدد را محاسبه کند و نمایش دهد.
قطعه کدی بنویسید که مجموع دو عدد اعشاری (double) را محاسبه کند و نمایش دهد (راهنمایی: مجموع دو عدد اعشاری یک عدد اعشاری میشود).
یک متغیر از نوع عدد صحیح تعریف کنید و مقدار 25 را به آن تخصیص دهید و سپس آن را در کنسول نمایش دهید. سپس مقدار این متغیر را 2 برابر کنید و دوباره در کنسول نمایش دهید.
استفاده از علامت + برای اتصال دو متن
قبلاً گفتیم که از علامتهای + - * / % برای متغیرهای عددی استفاده میکنیم. از علامت + میتوانیم برای متصل کردن دو متن هم استفاده کنیم. به این معنی که اگر دو متغیر از نوع string داشته باشیم، با جمع کردن این دو با هم یک متن بزرگتر بهدست میآید که در این متن جدید متن دوم به ادامۀ متن اول اضافه میشود.
قطعه کد زیر را در نظر بگیرید:
string firstName = "Bill";
string lastName = "Gates";
string fullName = firstName + lastName;
Console.WriteLine(fullName);
در قطعه کد بالا دو متغیر از نوع string، بهترتیب با نامهای firstName و lastName تعریف میکنیم. سپس این دو را با استفاده از علامت + به هم متصل میکنیم و نتیجه را در متغیر جدیدی با نام fullName قرار میدهیم.
دقت کنید که در این حالت مقدار fullName برابر با "BillGates" است (بدون فاصله بین دو کلمه) به این دلیل که دو متن به هم متصل میشوند. برای اینکه متن "Bill Gates" را بهدست آوریم یکی از سه راه زیر را باید انجام دهیم:
// یک اسپیس به انتهای متن اول اضافه می کنیم
string firstName = "Bill ";
// یا یک اسپیس به ابتدای متن دوم اضافه می کنیم
string lastName = " Gates";
/*
یا به جای اینکه دو متن را با هم ترکیب کنیم، سه متن را با هم ترکیب کنیم که متن وسط فقط شامل اسپیس است در این حالت متن
اول و متن دوم که شامل فقط اسپیس است تشکیل یک متن بزرگتر
می دهند و سپس با متن بعدی، متن جدید را تشکیل می دهند در نتیجه بین نام و نام خانوادگی یک فاصله قرار می گیرد
*/
string fullName = firstName + " " + lastName;
روش سوم راه حل بهتری است، زیرا مقادیر firstName و lastName را تغییر نمیدهد.
مقادیر اصلی را تغییر ندهید
استفاده از علامت + برای اتصال متن و عدد
همچنین با استفاده از علامت + (جمع) میتوانیم متن و عدد را به هم متصل کنیم.
قطعه کد زیر را در نظر بگیرید:
string firstName = "Bill";
int age = 67;
Console.WriteLine("First Name is " + firstName + " And He is " + age);
در این قطعه کد عبارت "First Name is " که یک متن هست (و بدون تخصیص به متغیر بهصورت مستقیم استفاده شده است) با متغیر firstName که آن هم متن است متصل میشود و متن "First Name is Bill" را شکل میدهد و خود این متن هم با متن " And He is " متصل شده و متن "First Name is Bill And He is" را میسازند. این متن هم با age که از نوع عددی است متن "First Name is Bill And He is 67" را تشکیل میدهند و درنهایت این متن در کنسول نمایش داده میشود.
چند متغیر برای نگهداری نام، نامخانوادگی، کشور محل تولد و سال تولد خود تعریف کنید و مقادیر را به آنها تخصیص دهید. سپس بهصورت عبارت
“{1} {2} was born in the {3} in {4}”
نشان دهید که به جای عبارت {1} نام، به جای عبارت {2} نامخانوادگی، به جای عبارت {3} کشور محل تولد، و به جای عبارت {4} سال تولد نوشته شده باشد.