در این بخش از آموزش سعی بر این داریم که اولین قدم را در #C برداریم. و میخواهیم توضیحات آموزشهای قبلی را با متغیرها، حلقهها و آرایه در c# ادامه دهیم. با ما همراه باشید.
متغیر
متغیر، مکانی از حافظه است که میتوان مقداری را در آن ذخیره کرد. هر متغیر دارای یک نام ، یک نوع (که با نوع دادهای که در آن قرار میگیرد، یکی است) و یک مقدار است.
تعریف متغیر به صورت زیر است:
1 2 3 |
data_type variable_name = value; data_type variable_name1 = value1, variable_name2 = value2, ... ,variable_nameN = valueN; |
کاملا واضح است که value مقدار متغیر ، variable_name نام متغیر و اما data_type چیست؟
انواع ساده
انواع ساده یا انواع اصلی، انواع دادهها هستند که شامل اعداد، رشتهها، کاراکترها و مقدارهای بولی میباشند. به این انواع ساده میگویند چون از آنها در ساختارهای پیچیدهتر مانند کلاسها استفاده میشود. انواع ساده محدوده خاصی از مقادیر را در خود ذخیره میکنند. در جداول زیر انواع ساده با محدوده آنها آمده است.
به حرف u در اول برخی از نام انواع دادهها در بالا توجه کنید. این حرف یعنی محدودهی مقادیر متغیر بین صفر تا یک عدد مثبت است. نوع char برای کاراکترهای یونیک مورد استفاده قرار میگیرد و کاراکترها باید بین سینگل کوتیشن ( ‘ ‘ ) قرار بگیرند. نوع string هم برای نگهداری گروهی از کاراکترها یا رشتهها مورد استفاده قرار میگیرد که باید بین دابل کوتیشن ( ” ” ) قرار بگیرند. نوع bool هم در دستورات شرطی کاربرد دارد.
در تصویر زیر مثال کاملی از نحوه تعریف متغیر و گفته های بالا مشاهده میکنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
static void Main(string[] args) { // Declare variables int int_var; float float_var; double double_var; decimal decimal_var; bool bool_var; char char_var; string string_var; //Assign values to variables int_var = 20; float_var = 20.59F; double_var = 19.56; decimal_var = 87.12M; bool_var = true; char_var = '#'; string_var = "Rasdino"; //Show values of the variables Console.WriteLine("int_var = {0}", int_var); Console.WriteLine("float_var = {0}", float_var); Console.WriteLine("double_var = {0}", double_var); Console.WriteLine("decimal_var = {0}", decimal_var); Console.WriteLine("bool_var = {0}", bool_var); Console.WriteLine("char_var = {0}", char_var); Console.WriteLine("string_var = {0}", string_var); } |
1 2 3 4 5 6 7 8 |
int_var = 20 float_var = 20.59 double_var = 19.56 decimal_var = 87.12 bool_var = True char_var = # string_var = Rasdino |
نکته قابل توجه این است که مقدار اعشاری بهطور پیشفرض double در نظر گرفته میشود. برای انتساب یک مقدار اعشاری به یک متغیر از نوع float یا decimal باید بلافاصله بعد از مقدار، به ترتیب از کاراکترهای F و M استفاده کنیم.
تعریف آرایه در c#
آرایهها مجموعهای از دادههای هم نوع را در خود ذخیره میکنند. موقعی را فرض کنید که میخواهید از صد متغیر یک نوع برای کاری استفاده کنید یا نتیجهای را بر روی آنها بنویسید در این هنگام تعریف صد متغیر جداگانه بسیار خسته کننده است اما با استفاده از آرایهها اینکار را میتوان در یک خط انجام داد.
در زیر دو نحوه تعریف آرایه در c# را مشاهده میکنید:
1 2 3 |
data_type[] array_name = new data_type[Length]; data_type[] array_name = new data_type[Length] {val1, val2, ... , valN }; |
data_type نوع دادههایی را نشان میدهد که آرایه در خود ذخیره میکند. array_name نام آرایه است. کلمه کلیدی new از حافظه برای آرایه ما به اندازه طول آن ( Lenght ) حافظه میگیرد. برای اختصاص مقادیر به آرایه چند راه وجود دارد. یکی مثل بالا است که در هنگام تعریف آرایه به آن مقدار هم دادهایم. و راه دوم هم مثل نمونه زیر است که وقتی کاربرد دارد که بخواهیم مقدار یک خانه از آرایه را تغییر دهیم یا آرایه را مقداردهی اولیه کنیم.
1 2 3 4 5 6 7 |
array_name[index] = value; array_name[0] = 10; array_name[1] = 20; array_name[2] = 30; array_name[3] = 40; |
نکته حائز اهمیت این است که index از 0 شروع میشود و تا Length – 1 ادامه مییابد و اگر در تعریف آرایه اندازه آن را مشخص نکنیم حتما باید آرایه را مقدار دهی اولیه کنیم تا کامپایلر از تعداد مقادیر، اندازه آرایه را تشخیص دهد.
برای سادگی در تعریف آرایه در c# ، میتوان از ساختار زیر استفاده کرد:
1 2 |
data_type[] array_name = {val1, val2, ... ,valN}; |
بدون احتیاج به کلمه کلیدی new و با معلوم کردن تعداد مقادیر ، کامپایلر به صورت اتوماتیک طول آرایه را تشخیص میدهد.
حلقهها
حلقه while
حلقه while یکی از سادهترین حلقه ها در #C است. و ساختار آن به این شکل است.
1 2 3 4 5 |
while(condition) { code to loop } |
در شرط حلقه، یک مقدار بولی یا یک عبارتی که حاصل آن مقدار بولی است باید قرار بگیرد. حلقه while ابتدا شرط را بررسی میکند بعد وارد حلقه میشود. اگر شرط از ابتدا غلط باشد هیچگاه وارد حلقه نمیشود.
حلقه do while
این حلقه بسیار شبیه به حلقه while است. اما یک فرق مهم دارند. اگر شرط از ابتدا غلط باشد حلقه یک بار اجرا میشود. این به این دلیل است که حلقه do while اول یکبار اجرا میشود و بعد شرط را چک میکند.
1 2 3 4 5 |
do { code to repeat; }while(condition); |
حلقه for
این حلقه عملی شبیه به حلقه while را انجام میدهد اما دارای چند ویژگی متمایز کننده است.
1 2 3 4 5 |
for(initialization; condition; operation) { code to repeat; } |
مقدار اولیه ( initialization ) اولین مقداری است که به شمارنده حلقه میدهیم. شرط ( condition ) در اینجا مقدار شمارنده را با یک مقدار دیگر مقایسه می کند و تعیین میکند که حلقه ادامه پیدا کند یا نه. عملگر ( operation ) که مقدار اولیه شمارنده یا متغیر را کاهش یا افزایش میدهد.
مثال
در زیر یک آرایه را با حلقه for و while پیمایش میکنیم. و میبینیم که نتیجه یکسانی دارند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
static void Main(string[] args) { string[] number = { "A", "B", "C", "D", "E", "F" }; for (int i = 0; i < number.Length; i++) { Console.WriteLine(number[i]); } Console.WriteLine("**********************"); int j = 0; while (j < number.Length) { Console.WriteLine(number[j]); j++; } Console.WriteLine("**********************"); } |
نتیجه مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
A B C D E F ********************** A B C D E F ********************** |
در شرط حلقههای بالا ما از دستور number.Lenght استفاده کردیم که اندازه آرایه را برای ما برمیگرداند. ساختار این دستور را در آینده توضیح میدهیم.
حلقه foreach
این حلقه یکی از ساختار های تکرار در #C است که خواندن آرایهها، مجموعهها و لیستها را برای ما آسانتر میکند. ما با استفاده از این حلقه فقط قادر خواهیم بود مقدار آرایهها و … را بخوانیم. البته قادر به نوشتن در آنها نیستیم. حلقه foreach با هر بار پیمایش آرایهها و … ، هر عنصر را در داخل یک متغیر قرار میدهد.
1 2 3 4 5 |
foreach (datatype item in collection) { } |
در ساختار حلقه foreach، نام آرایهها، مجموعهها و لیستها به جای collection قرار میگیرد. datatype برابر نوع هر عنصر collection است. به مثال زیر توجه کنید.
1 2 3 4 5 6 |
int[] numbers = { 10, 20, 30, 40, 50, 60, 70, 80 }; foreach (int number in numbers) { Console.WriteLine($"number {number / 10}: {number}"); } |
1 2 3 4 5 6 7 8 9 |
number 1: 10 number 2: 20 number 3: 30 number 4: 40 number 5: 50 number 6: 60 number 7: 70 number 8: 80 |
همانطور که مشخص است حلقه در هر بار گردش، یک عنصر آرایه را در متغیر number قرار میدهد و دستور داخل بدنه حلقه آن را چاپ میکند.
خب امیدوارم که از این بخش لذت برده باشید. در بخش بعد آموزش به توضیح دستورات شرطی در #C میپردازیم. با رزدینو همراه باشید…