حالا ميخوايم کد نويسي رو شروع کنيم
قبل از هرکاري ابتدا با متغير ها و انواع آنها آشنا ميشيم
درحالت کلي در سي شارپ متغير ها بصورت زير تعريف ميشن :
مقدار متغير = نام متغير نوع متغير;
نام متغير به صورت دلخواه انتخاب ميشه ولي توصيه من اينه که اسمي رو انتخاب کنين که بيشتر به هدفتون نزديکتر باشه مثلا اگه ميخواين متغيري براي فاميل درنظر بگيرين اسمش رو familly بزارين اينجوري درصد اشتباهتون خيلي پايين مياد.
انواع متغير ها :
در سي شارپ چند نوع متغير داريم مثل متغير هاي داده اي و متغير هاي اعشاري و متغير هاي صحيح و …
۱- نوع داده ای عددی
متغير هاي داده اي :
اين متغير ها با کلمه کليدي string نمايش داده ميشن و مقادير رشته اي رو ذخيره ميکنند مثل
string name = "sajjad"; string color = "blue";
نکته اي که هست اينه که مقدار داده حتما بايد داخل ” ” باشه.
متغیر های صحيح :
اين متغير ها با کلمه کليدي int نشون داده ميشن و مقادير يا اعداد صحيح رو ذخيره ميکنند مثل
int number1 = 20; int number2 = 45 ;
متغیر های اعشاري :
اين متغير ها با کلمه کليدي float نشون داده ميشن .مقادير يا اعداد اعشاري رو ذخيره ميکنند مثل
float grade = 19.58 float average = 18.02
متغير های عددی رو به طور کلي بصورت زير نوشتم :
نوع داده byte: در اين نوع داده مي توان از بازه ۰ تا ۲۵۵ را ذخيره کرد.
نوع داده sbyte: در اين نوع داده مي توان از بازه ۱۲۸- تا ۱۲۷ را ذخيره کرد.
نوع داده short: در اين نوع داده مي توان از بازه ۳۲،۷۶۸- تا ۳۲،۷۶۷ را ذخيره کرد.
نوع داده ushort: در اين نوع داده مي توان از بازه ۰ تا ۶۵،۵۳۵ را ذخيره کرد.
نوع داده int: در اين نوع داده مي توان از بازه ۲،۱۴۷،۴۸۳،۶۴۸- تا ۲،۱۴۷،۴۸۳،۶۴۷ را ذخيره کرد.
نوع داده uint: در اين نوع داده مي توان از بازه ۰ تا ۴،۲۹۴،۹۶۷،۲۹۵ را ذخيره کرد.
نوع داده long: در اين نوع داده مي توان از بازه ۹،۲۲۳،۳۷۲،۰۳۶،۸۵۴،۷۷۵،۸۰۸- تا ۹،۲۲۳،۳۷۲،۰۳۶،۸۵۴،۷۷۵،۸۰۷ را ذخيره کرد.
نوع داده ulong: در اين نوع داده مي توان از بازه ۰ تا ۱۸،۴۴۶،۷۴۴،۰۷۳،۷۰۹،۵۵۱،۶۱۵ را ذخيره کرد.
نوع داده float: در اين نوع داده مي توان از بازه ۳٫۴۰۲۸۲۳e38- تا ۳٫۴۰۲۸۲۳e38 را ذخيره کرد.
نوع داده double: در اين نوع داده مي توان از بازه ۱٫۷۹۷۶۹۳۱۳۴۸۶۲۳۲e308- تا ۱٫۷۹۷۶۹۳۱۳۴۸۶۲۳۲e308 را ذخيره کرد.
نوع داده decimal: در اين نوع داده مي توان از بازه ۷۹۲۲۸۱۶۲۵۱۴۲۶۴۳۳۷۵۹۳۵۴۳۹۵۰۳۳۵- تا ۷۹۲۲۸۱۶۲۵۱۴۲۶۴۳۳۷۵۹۳۵۴۳۹۵۰۳۳۵ را ذخيره کرد.
نکته: علامت s در کنار byte يعني نوع داده sbyte، مخفف signed يا داراي علامت منفي است که نشان دهنده بازه اعداد منفي مي باشد.
نکته: علامت u در کنار نوع هايي مانند short و int و long، مخفف unsigned يا بدون علامت منفي است که اين نوع هاي داده اعداد بزرگتر از صفر را قبول مي کنند.
براي مثال:
decimal number2 = 458.332m; byte number3 = 231;
در صورتي که کنار عددي کاراکتر m قرار بگيره مانند مثال بالا، مشخص مي کنه که اين عدد از نوع decimal است، در بخش هاي بعدي دليل استفاده از اين کاراکتر را متوجه خواهيم شد.
نکته: هميشه نوع هايي که بازه شان کمتر از بازه نوع ديگه است، به طور مستقيم قابل تبديل به هم هستند. براي مثال مي توان متغيري از نوع int رو داخل متغيري از نوع long ريخت، اما اين برعکس اين عمل امکان پذير نيست.
مثال:
int number1 = 55312; long number2 = number1;
کد بالا بدون مشکل اجرا ميشه. اما کد زير اجرا نميشه:
long number1 = 223423; int number2 = number1;
در صورت نياز به اين کار، بايد از تبديل نوع ها يا Type Casting استفاده کرد که در بخش هاي بعدي در مورد Type Casting توضيح ميديم.
۲- نوع داده کاراکتر:
هر رشته، مجموعه اي از کارکترهاست . براي مثال رشته “ABC” از کاراکترهاي A و B و C تشکيل شده است. براي ذخيره يک کاراکتر در زبان سي شارپ از نوع داده char استفاده مي کنيم. رشته ها در بين «”» قرار مي گيرند. اما يک کاراکتر در بين «’» قرار مي گيرد. براي مثال:
char chr1 = 'A'; char chr2 = 'B';
کد بالا، دو متغير از نوع کاراکتر تعريف کرده و يکي کاراکتر A و در ديگري کاراکتر B را قرار مي دهد.
۳- نوع داده منطقي يا Boolean
اين نوع داده تنها دو مقدار true يا صحيح و false يا غلط را قبول مي کنه. بيشتر از نوع داده منطقي، جهت ذخيره نتيجه مقايسه ها و کنترل روند اجراي برنامه بر اساس شرط ها استفاده مي کنند. براي مثال:
bool var1 = false; bool var2 = true;
کد بالا، دو متغير تعريف کرده و در اولي مقدار false و در دومي مقدار true را ذخيره مي کند. در بخش بعدي در مورد عملگر هاي رياضي و عملگر هاي مقايسه صحبت خواهيم کرد و در آن قسمت با نحوه استفاده از نوع منطقي يا Boolean بيشتر آشنا خواهيد شد.
۴ – نوع داده شئ يا object
نوع داده شئ يا Object، نوع داده ايست که در آن هر نوع مقداري چه رشته اي، چه عددي و چه منطقي قابل ذخيره است:
object intObj = 123; object decimalObj = 235.56m; object stringObj = "iran";
استفاده از کلمه کليدي var
در زبان سي شارپ، همانطور که قبلاً هم گفته شد، تمامي نوع هاي داده بايد مشخص باشند. اما بعضي وقت ها انتخاب نوع داده را بر اساس مقدار مي خواهيم بر عهده زبان کامپايلر زبان سي شارپ بگذاريم. براي اين کار، از کلمه کليدي var استفاده مي کنيم. با استفاده از اين کلمه کليدي، به زبان سي شارپ ميگيم، بر اساس مقداري که داخل متغير ريخته ميشه، نوع آن را خودت تشخيص بده. مثال:
var str = "iran"; var num = 1223; var decNum = 22563.333m; var chr = 'A';
با مقدار اوليه ريخته شده داخل متغيرها، کامپايلر نوع داده را به صورت خودکار انتخاب مي کند. فقط به دو نکته زير توجه داشته باشيد:
متغيرهايي که با کلمه کليدي var تعريف مي شوند حتماً بايد مقدار اوليه داشته باشند.
بعد از تعريف متغيري با کلمه کليدي var، نمي توان مقداري غير از نوع اوليه آن ريخت. براي مثال:
var num = 1234; num = "This is a text!";
کد بالا منجر به پيغام خطا خواهد شد، زيرا بر اساس مقدار اوليه نوع متغير از نوع int در نظر گرفته شده و ريختن يک رشته داخل آن امکان پذير نمي باشد.
کلمه کليدي const
زماني که شما متغيري را تعريف مي کنيد، در هر قسمت برنامه که به آن متغير دسترسي داريد، مي توانيد مقدار آن را تغيير دهيد. اما فرض کنيد مي خواهيد اين مقدار ثابت بوده و قابل تغيير نباشد. در اينجا بايد از کلمه کليدي const که مخفف constant يا ثابت مي باشد استفاده کنيد. زماني که متغيري با اين کلمه کليدي مشخص مي شود مقدار آن تنها زمان تعريف متغير قابل تعيين خواهد بود و در ساير قسمت ها امکان تغيير مقدار متغير را نخواهيد داشت:
const int MY_CONSTANT = 12;
دستور بالا متغيري با مقدار ثابت ۱۲ و با نام MY_CONSTANT تعريف مي کند. زمان تعريف متغيرهاي const سعي کنيد از قاعده نام گذاري متغيرهاي ثابت که تمام کاراکترهاي آن Upper Case بوده و هر لغت بوسيله کاراکتر _ جدا مي شوند استفاده کنيد.
تا اين قسمت، با انواع متغيرهاي اوليه و ساده زبان سي شارپ آشنا شديم. همچنين با کلمه کليدي const آشنا شديم. در بخش بعدي با عملگرهاي رياضي و عملگرهاي منطقي آشنا خواهيم شد.
زبان برنامه نویسی سی شارپ شامل مجموعه ای از دستورات تصمیم گیری است که به کمک آنها میتوان جریان برنامه را بر اساس شروط معین مدیریت کرد. در این فصل به دستورات if در زبان برنامه نویسی سی شارپ میپردازیم.
زبان برنامه نویسی سی شارپ شامل مجموعه ای از دستورات تصمیم گیری است که به کمک آنها میتوان جریان برنامه را بر اساس شروط معین مدیریت کرد.
زبان سی شارپ شامل دستورات تصمیم گیری زیر است :
if
if-else
switch
:?
در این فصل در مورد دستورات if
مطالبی را خواهیم آموخت. قاعده نوشتاری دستور if
به شکلی است که در زیر آمده است :
if(boolean expression)
{
// execute this code block if expression evalutes to true
}
دستور if
شامل یک عبارت بولین (صحیح یا ناصحیح) است که به دنبال آن یک یا چند خط کد میتواند در بدنه دستور if
قرار گیرد. اگر عبارت بولین صحیح ارزیابی شود دستورات نوشته شده در بدنه if
اجرا خواهند شد.
همانطور که مشاهده می کنید در نمونه مثال زیر از دستور if
استفاده شده است. با توجه به اینکه عبارت بولین اولین دستور if
همیشه صحیح است ، دستورات بدنه آن همیشه اجرا خواهند شد. این در حالی است که بدنه دومین دستور if
به دلیل عبارت بولین ناصحیح هیچگاه اجرا نخواهد شد.
using System;
public class Program
{
public static void Main()
{
if(true)
{
Console.WriteLine("This will be displayed");
}
if(false)
{
Console.WriteLine("This will not be displayed");
}
}
}
خروجی نمونه مثال بالا به شکل زیر است :
This will be displayed
همانطور که در نمونه مثال بالا بیان شد دستور if
شامل یک عبارت بولین (صحیح و یا ناصحیح) است. یک عبارت می توانند مقدار صحیح و ناصحیح را برگرداند. در نمونه مثال زیر از عبارات منطقی به عنوان شرط دستور if
استفاده شده است :
using System;
public class Program
{
public static void Main()
{
int i = 10, j = 20;
if (i > j)
{
Console.WriteLine("i is greater than j");
}
if (i < j)
{
Console.WriteLine("i is less than j");
}
if (i == j)
{
Console.WriteLine("i is equal to j");
}
}
}
خروجی نمونه مثال بالا به شکل زیر است :
i is less than j
در نمونه مثال بالا عبارت بولین i < j
در دومین دستور if
صحیح ارزیابی می شود و تنها کدهای موجود در بدنه ی این دستور اجرا خواهند شد. عبارت های اولین و سومین دستور if
، ناصحیح ارزیابی میشوند و کدهای موجود در بدنه ی آنها اجرا نخواهند شد.
زبان برنامه نویسی سی شارپ همچنین قسمت دومی را برای دستور if
فراهم آورده است. این قسمت else
نام دارد. دستور else
بعد از بدنه دستور if
قرار می گیرد و یا در زنجیره ای از دستورات if
و else
قبل از دستور if به صورت else-if
قرار میگیرد. در هر صورت دستور else تنها یک بار میتواند در زنجیره دستورات if
و else
قرار گیرد.
قاعده نوشتاری برای این دستور به شکل زیر است :
if(boolean expression)
{
// execute this code block if expression evalutes to true
}
else
{
// always execute this code block when above if expression is false
}
همانطور که در قاعده ی نوشتاری در بالا مشخص است دستور else
نمیتواند دارای عبارتی باشد. دستوراتی که در بدنه دستور else
قرار گرفتهاند زمانی که دستور if ناصحیح ارزیابی شود اجرا میشوند.
using System;
public class Program
{
public static void Main()
{
int i = 10, j = 20;
if (i > j)
{
Console.WriteLine("i is greater than j");
}
else
{
Console.WriteLine("i is either equal to or less than j");
}
}
}
خروجی نمونه مثال فوق به شکل زیر است :
i is either equal to or less than j
دستور if
می تواند بلافاصله بعد از دستور else
قرار گیرد. در این صورت می توانید در این قسمت شرط دیگری را ارزیابی کنید.
static void Main(string[] args)
{
int i = 10, j = 20;
if (i > j)
{
Console.WriteLine("i is greater than j");
}
else if (i < j)
{
Console.WriteLine("i is less than j");
}
else
{
Console.WriteLine("i is equal to j");
}
}
خروجی نمونه مثال بالا به شکل زیر است :
i is less than j
شما می توانید از چندین دستور else if
در یک زنجیره ی دستور if
استفاده کنید. زمانی که بدنه ی دستورات if
تنها دارای یک خط باشند میتوان براکت ها را حذف کرد.
int i = 10, j = 20;
if (i > j)
Console.WriteLine("i is greater than j");
else if (i < j)
Console.WriteLine("i is less than j");
else if (i == j)
Console.WriteLine("i is equal to j");
خروجی به شکل زیر است :
i is less than j
زبان برنامه نویسی سی شارپ به ما اجازه می دهد که دستورات if
را به صورت تو در تو استفاده کنیم. در نمونه مثال زیر می توان این دستورات را مشاهده نمود :
int i = 10;
if (i > 0)
{
if (i <= 100)
{
Console.WriteLine("i is positive number less than 100");
}
else
{
Console.WriteLine("i is positive number greater than 100");
}
}
خروجی به شکل زیر است :
i is positive number less than 100