درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
دوره های مرتبط
دوره آموزشی ساخت ربات تلگرام
مدرس: taghandiki
این دوره را در 8 قسط خریداری کنید
ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
مدرس: مهدی عادلی
این دوره را در 2 قسط خریداری کنید
دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
مدرس: حسین احمدی
این دوره را در 17 قسط خریداری کنید
دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
مدرس: taghandiki
این دوره را در 20 قسط خریداری کنید
دوره آموزشی برنامه نویسی حرفه ای پایتون به زبان ساده
مدرس: حسین احمدی
این دوره را در 23 قسط خریداری کنید
دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
مدرس: مهدی عادلی
این دوره را در 27 قسط خریداری کنید
دوره آموزشی طراحی رابط کاربری با JavaFX
مدرس: hharddy
این دوره را در 13 قسط خریداری کنید
دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
مدرس: dr-iman
این دوره را در 13 قسط خریداری کنید
دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
مدرس: مهدی عادلی
این دوره را در 17 قسط خریداری کنید
دوره آموزشی Exploit نویسی به زبان Perl
مدرس: dr-iman
این دوره را در 7 قسط خریداری کنید

آموزش زبان سی شارپ - قسمت هشتم :: آشنایی با دستورات کنترلی و حلقه ها (بخش اول)

0 نظرات
318 بازدیدها
با سلام به همه دوستان عزیزم در وب سایت ITPro. با قسمت هشتم از سری آموزشی زبان سی شارپ در خدمت شما هستم. در ادامه مباحث مقدماتی سری آموزشی، قصد داریم با دستورات کنترلی، شرط ها و حلقه ها آشنا شویم. به دلیل حجم زیاد مطالب، قسمت هشتم به چهار بخش زیر تقسیم خواهد شد:

  1. بخش اول: آشنایی با دستور if
  2. بخش دوم: آشنایی با دستور switch
  3. بخش سوم: آشنایی با دستور for
  4. بخش چهارم: آشنایی با حلقه های while و do - while


مقدمه ای بر دستورات کنترلی


خیلی از مواقع، زمانی که برنامه ای را می نویسیم، نیاز داریم تا بر اساس شرایط خاص و یا ورودی های کاربر، روند اجرای برنامه را تغییر دهیم. برای نمونه، فرض کنید برنامه ای نوشته اید که در ابتدای اجرای برنامه، از کاربر یک نام کاربری و کلمه عبور دریافت و در صورت صحیح بودن اطلاعات وارد شده، کاربر به سیستم دسترسی خواهد داشت، در غیر اینصورت باید به کاربر پیغام مناسبی نمایش داده و از برنامه خارج شویم. برای این کار باید از شرط ها و دستورات کنترلی استفاده کنیم. در قسمت بررسی متغیرها و انواع داده، نوع داده Boolean را بررسی کردیم که بر اساس یک شرط مقدار True یا False را برمی گرداند. (True به معنی صحیح و False به معنی غلط می باشد). ما در دستورات کنترلی نیز از شرط ها استفاده میکنیم. در بخش اول از قسمت هشتم سری آموزشی زبا سی شارپ با دستور if آشنا می شویم.


دستور if


بوسیله دستور if ما قادر خواهیم بود بر اساس شرط های مختلف کدهای مورد نظر خود را اجرا کنیم. در ابتدا ساختار کلی دستور را بررسی کرده و سپس با ذکر یک مثال عملی با این دستور بیشتر آشنا خواهیم شد. ساختار اولیه دستور if به صورت زیر است:
if(condition)
{
    // statements
}

در قالب دستوری بالا، در قسمت condition شرط مورد نظر خود را می نویسیم. در قسمت statements هم دستوراتی که در صورت درست بودن شرط اجرا خواهند شد را می نویسیم. برای مثال فرض کنید متغیری داریم با نام A که عدد داخل آن 18 می باشد. حالا می خواهیم در صورتی که مقدار A برابر 20 بود پیغامی را به کاربر نمایش دهد:

if(A == 20)
{
    Console.WriteLine("Your Message!");
}

دقت کنید، بدنه دستور if با { و } (به این علامت ها Brace نیز گفته می شود) مشخص می شود. به این بدنه Scope یا فضای دستور if نیز گفته می شود. در صورتی که تعداد دستورات بدنه if تنها یک دستور بود، می توان از نوشتن Brace ها صرفنظر کرد:

if(A == 20)
    Console.WriteLine("Your Message!");

*نکته: در صورتی که Brace ها نوشته نشوند، امکان تعریف متغیر در دستور داخل if وجود ندارد و برای تعریف متغیر باید حتماً Brace ها نوشته شوند:

// invalid
if(A == 20)
    string myVar = "Test";

// valid
if(A == 20)
{
    string myVar = "Test";
}


دستور if else



در بالا، با ساختار اولیه دستور if آشنا شدیم. حالا فرض کنیم شرطی را مشخص کردیم، می خواهیم در صورت برقرار نبودن شرط، قطعه کد دیگری اجرا شود. در اینجا دستور else به کمک ما می آید. دستور else کدی که در صورت برقرار نبودن شرط باید اجرا شود را مشخص می کند. ساختار کلی else به صورت زیر است:

if(condition)
{
    // if body
}
else
{
    // else body
}

قسمت اول که همان بخش if است که در قسمت قبلی با آن آشنا شدیم. کدی که در قسمت else می نویسیم در صورت برقرار نبودن شرط اجرا خواهد شد. در مثال قبلی گفتیم اگر مقدار A از 20 بزرگتر بود یک پیام در خروجی چاپ شود. حال می خواهیم در صورتی که شرط برقرار نبود پیام دیگری برای کاربر چاپ شود:

if(A == 20)
{
    Console.WriteLine("Your Message!");
}
else
{
    Console.WriteLine("Another Message!");
}

بر بخش else نیز می توان در وجود تنها یک دستور، از نوشتن Brace ها صرفنظر کرد.

مثال عملی 1
در این مثال قصد داریم برنامه ای بنویسیم که از کاربر یک کلمه عبور و یک نام کاربری را دریافت کرده و در صورت صحیح بودن اطلاعات وارد شده، پیغام مناسبی را به کاربر نمایش دهد. در صورت صحیح نبودن نام کاربری و کلمه عبور نیز پیغام دیگری نمایش داده خواهد شد. پروژه جدیدی از نوع Console Application با نام CSharp-Course08-01 ایجاد کنید. (در این قسمت شیوه ایجاد پروژه توضیح داده شده است). خوب گفتیم کدهای ما باید داخل متد Main نوشته شود.
1. در ابتدا ما باید یک نام کاربری و یک کلمه عبور از کاربر دریافت کنیم. این ورودی ها باید داخل یک متغیر ذخیره شوند. پس ما باید دو متغیر برای اینکار تعریف کنیم:

string username;
string password;

2. بعد از تعریف متغیرها، باید از کاربر نام کاربری و کلمه عبور را بگیریم. برای اینکار از متد Console.ReadLine استفاده می کنیم. با این دستور، برنامه منتظر ورود یک مقدار از کاربر شده و بعد از زدن کلید Enter، ورودی را برای ما بر میگرداند. خروجی این دستور از نوع string یا رشته می باشد. اما قبل از دریافت ورودی، باید یک پیام مناسب برای گرفتن اطلاعات از کاربر به او نمایش دهیم. برای نمایش اطلاعات از متد Console.Write استفاده می کنیم. در Console، ما دو دستور برای نمایش خروجی داریم، یکی Write و دیگری WriteLine. دستور اول تنها یک پیام را به کاربر نمایش می دهد، اما دستور دوم بعد از نمایش پیام، مکان نما یا Cursor را به خط بعد منتقل می کند. دستورات زیر را در ادامه دستورات قبلی می نویسیم:

Console.Write("Enter username:");
username = Console.ReadLine();
Console.Write("Enter password:");
password = Console.ReadLine();

به خط های دوم و چهارم دقت کنید، ما با Console.ReadLine مقدار را از کاربر دریافت کرده و مستقیماً داخل متغیرهای مربوطه ذخیره می کنیم.
3. در ادامه باید نام کاربری و کلمه عبور بررسی شوند و بر اساس اطلاعات وارد شده، پیغام مناسب به کاربر نمایش داده شود. برای انکار از دستور if استفاده می کنیم:

if(username == "IT" && password == "Pro")
{
    Console.WriteLine("Welcome to ITPro world!");
}
else
{
    Console.WriteLine("Oops! username or passord is invalid!");
}

به شرط داخل if دقت کنید، ما اینجا از عملگر && یا AND استفاده کردیم، به این خاطر که هم نام کاربری و هم کلمه عبور باید برابر با مقدارهای مد نظر ما باشند. برای مثال اگر از || یا OR استفاده می کردیم، کاربر با درست وارد کردن یکی از مقادیر نام کاربری یا کلمه عبور امکان دسترسی به سیستم را داشت، اما با && باید هر دو را صحیح وارد کند.

4. در انتها متد Console.ReadKey را می نویسیم تا برنامه قبل از خارج شدن، منتظر دریافت کلیدی از کاربر شود. در حال حاضر دستورات متد Main به شکل زیر خواهند بود:

string username;
string password;
Console.Write("Enter username:");
username = Console.ReadLine();
Console.Write("Enter password:");
password = Console.ReadLine();
if (username == "IT" && password == "Pro")
{
    Console.WriteLine("Welcome to ITPro world!");
}
else
{
    Console.WriteLine("Oops! username or passord is invalid!");
}
Console.ReadKey();

با زدن کلید F5 برنامه را اجرا کرده و خروجی را مشاهده می کنیم.


دستور if - else if


بوسیله دستور else if ما قابلیت تعیین چند شرط متوالی را خواهیم داشت. اگر بخواهیم این دستور را به زبان عامیانه ترجمه کنیم میگوییم:

  1. اگر شرط 1 برقرار بود => دستورات اول
  2. در غیر اینصورت اگر شرط 2 برقرار بود => دستورات دوم
  3. در غیر اینصورت اگر شرط n برفرار بود => دستورات n ام
  4. در غیر این صورت => سایر دستورات

ساختار کلی این دستور به صورت زیر است:

if(condition1)
{
    // if body
}
else if(condition2)
{
    // if body
}
else if(conditionN)
{
    // if body
}
else
{
    // if body
}

توجه کنید که تنها یکی از قسمت های دستور if اجرا خواهد شد، یعنی اگر یکی از condition ها برقرار شود، سایر قسمت بررسی نمی شود.

مثال عملی 2
در این مثال عملی، قصد داریم تا یک برنامه ماشین حساب ساده بنویسیم. این برنامه ساده، از کاربر 2 عدد و یک عملگر را دریافت کرده و بر اساس عملگر وارد شده، محاسبه را انجام داده و به کاربر خروجی را نمایش می دهد. برای اینکار یک پروژه از نوع Console با نام CSharp-Course08-02 ایجاد کنید.

1. در ابتدا باید از کاربر سه مقدار را دریافت می کنیم. دو عدد و یک عملگر. برای اینکار نیاز به سه متغیر داریم. دو متغیر اول از نوع int که عددها را داخل آن ذخیره می کنیم و متغیر نوع سوم از نوع string که عملگر را داخل آن ذخیره می کنیم:

int firstNumber;
int secondNumber;
string @operator;

*به متغیر سوم دقت کنید، در ابتدای نام آن از علامت @ استفاده کرده ایم! دلیل اینکار، موجود بودن نام operator در لیست کلمات کلیدی زبان سی شارپ است. اگر شما قصد دارید متغییری تعریف کنید که نام آن در لیست کلمات کلیدی سی شارپ وجود دارد ابتدای نام آن باید از علامت @ استفاده کنید. کلمات کلیدی مانند int یا long یا if و ...

2. بعد از تعریف متغیرها، باید ورودی ها را از کاربر دریافت کنیم. نکته ای که باید در اینجا به آن توجه کرد، دو متغیر اول ما هستند. این متغیرها از نوع int تعریف شدند، در صورتی که متد Console.ReadLine مقداری از نوع رشته به ما بر میگرداند. در اینجا ما باید رشته را به عدد تبدیل کنیم. برای این تبدیل می توایم از متد int.Parse استفاده کیم. این متد یک ورودی از نوع رشته گرفته و آن را تبدیل به عدد می کند. مثال:

int num1 = int.Parse("12");

متد Parse برای سایر نوع های عددی نیز وجود دارید:

long longNumber = long.Parse("32223545212");
decimal decimalNumber = decimal.Parse("223.12");

در ادامه کد قبل، کد زیر را بنویسید. کد زیر عددها و عملگرها را از کاربر دریافت می کند:

Console.Write("Enter first number: ");
firstNumber = int.Parse(Console.ReadLine());
Console.Write("Enter second number: ");
secondNumber = int.Parse(Console.ReadLine());
Console.Write("Enter math operator (+,-,*,/): ");
@operator = Console.ReadLine();

دقت کنید که هنگام استفاده از متغیر operator نیز باید از علامت @ استفاده کرد.

به خط دوم دقت کنید. ترتیب اجرای دستورات، ابتدا دستورات سمت چپ اجرا شده و سپس عملیات انتساب انجام می شود. در قسمت سمت چپ نیز، ابتدا دستور ReadLine اجرا شده، سپس خروجی ReadLine به متد Parse ارسال می شود، متد Parse عملیات تبدیل را انجام داده و عددی را بر می گرداند و سپس این عدد داخل متغیر firstNumber ذخیره می شود.

3. در مرحله بعد، می خواهیم قبل از نمایش خروجی پیغامی مناسب برای کاربر نمایش داده شود. برای مثال "2 + 2 = 4"، دستور زیر را در ادامه وارد کنید:

Console.Write("Result for " + firstNumber + " " + @operator + " " + secondNumber + " = ");

حالا، باید با دستورات if، شرط های مختلف را بررسی کنیم. بوسیله ساختار if، بر اساس عملگر وارد شده، محاسبه را انجام داده و نتیجه را در خروجی نمایش می دهیم:

if (@operator == "+")
{
    Console.WriteLine(firstNumber + secondNumber);
}
else if (@operator == "-")
{
    Console.WriteLine(firstNumber - secondNumber);
}
else if (@operator == "*")
{
    Console.WriteLine(firstNumber*secondNumber);
}
else if (@operator == "/")
{
    Console.WriteLine(firstNumber/secondNumber);
}
else
{
    Console.WriteLine("Invalid operator!");
}

به else انتهایی دقت کنید، این else در صورتی اجرا خواهد شد که عملگر وارد شده، هیچ از یک مقادیر جمع، تفریق، ضرب یا تقسیم نباشد که پیغام عملگر اشتباه را به کاربر نمایش می دهد. کد نهایی ما باید به صورت زیر باشد:

int firstNumber;
int secondNumber;
string @operator;
Console.Write("Enter first number: ");
firstNumber = int.Parse(Console.ReadLine());
Console.Write("Enter second number: ");
secondNumber = int.Parse(Console.ReadLine());
Console.Write("Enter math operator (+,-,*,/): ");
@operator = Console.ReadLine();

Console.Write("Result for " + firstNumber + " " + @operator + " " + secondNumber + " = ");
if (@operator == "+")
{
    Console.WriteLine(firstNumber + secondNumber);
}
else if (@operator == "-")
{
    Console.WriteLine(firstNumber - secondNumber);
}
else if (@operator == "*")
{
    Console.WriteLine(firstNumber*secondNumber);
}
else if (@operator == "/")
{
    Console.WriteLine(firstNumber/secondNumber);
}
else
{
    Console.WriteLine("Invalid operator!");
}
Console.ReadKey();

نمونه ای از اجرای کد بالا را در تصویر زیر مشاهده می کنید:

نمونه اجرای برنامه


تا اینجا، با ساختار دستور if و کاربردهای آن آشنا شدیم، در بخش بعدی با ساختار دستور switch آشنا خواهیم شد.

نویسنده : حسین احمدی
منبع : جزیره برنامه نویسی وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
برچسب ها
ردیف عنوان قیمت
1 دوره آموزشی .NET Framework و زبان برنامه نویسی سی شارپ - مقدمه رایگان
2 آموزش سی شارپ - قسمت اول :: معرفی و بررسی ابزارهای مورد نیاز دوره رایگان
3 آموزش زبان سی شارپ - قسمت دوم :: آشنایی با .NET Framework و ساختار آن (بخش اول) رایگان
4 آموزش زبان سی شارپ - قسمت دوم :: آشنایی با .NET Framework و ساختار آن (بخش دوم) رایگان
5 آموزش زبان سی شارپ - قسمت سوم :: آشنایی اولیه با محیط Visual Studio و نوشتن اولین برنامه رایگان
6 آموزش زبان سی شارپ - قسمت چهارم :: آشنایی با ساختار برنامه ها و کامپایلر زبان سی شارپ رایگان
7 آموزش زبان سی شارپ - قسمت پنجم :: آشنایی با دستورات کنسول و متغیرها رایگان
8 آموزش زبان سی شارپ - قسمت ششم :: نوع های داده اولیه رایگان
9 آموزش زبان سی شارپ - قسمت هفتم :: آشنایی با عملگرهای زبان سی شارپ رایگان
10 آموزش زبان سی شارپ - قسمت هشتم :: آشنایی با دستورات کنترلی و حلقه ها (بخش اول) رایگان
11 آموزش زبان سی شارپ - قسمت هشتم :: آشنایی با دستورات کنترلی و حلقه ها (بخش دوم) رایگان
12 آموزش زبان سی شارپ - قسمت هشتم :: آشنایی با دستورات کنترلی و حلقه ها (بخش سوم) رایگان
13 آموزش زبان سی شارپ - قسمت هشتم :: آشنایی با دستورات کنترلی و حلقه ها (بخش چهارم) رایگان
14 آموزش زبان سی شارپ - قسمت نهم :: آشنایی با آرایه ها و دستور foreach رایگان
15 آموزش زبان سی شارپ - قسمت دهم :: آشنایی با متدها در زبان سی شارپ (بخش اول) رایگان
16 آموزش زبان سی شارپ - قسمت دهم :: آشنایی با متدها در زبان سی شارپ (بخش دوم) رایگان
17 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت یازدهم :: مقدمه ای بر برنامه نویسی شئ گرا رایگان
18 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت دوازدهم :: آشنایی با کلاس، اشیاء و فضاهای نام رایگان
19 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت سیزدهم :: آشنایی با فیلدها و رفتارها رایگان
20 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت چهاردهم :: آشنایی با Property ها رایگان
21 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت پانزدهم :: آشنایی با سازنده ها و روش های ایجاد اشیاء رایگان
22 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت شانزدهم :: وراثت یا Inheritance رایگان
23 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت هفدهم :: آشنایی با مفهوم Polymorphism رایگان
24 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت هجدهم:: کلاس های abstract و sealed رایگان
25 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت نوزدهم :: سازنده ها در وراثت، کلمه کلیدی protected و فیلدهای readonly رایگان
26 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت بیستم :: کلاس های static و partial و Extension Method ها رایگان
27 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت بیست و یکم :: Reference Types و Value Types رایگان
28 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت بیست و دوم :: آشنایی با کاربرد interface ها رایگان
29 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت بیست و سوم :: آشنایی با مفاهیم Inversion of Control و Dependency Injection رایگان
30 آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و چهارم :: آشنایی با مفهوم Type Casting و انواع Cast ها رایگان
31 آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و پنجم :: آشنایی با operator overloading و تعریف cast ها رایگان
32 آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و ششم :: مفاهیم boxing و unboxing رایگان
33 آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و هفتم :: قابلیت Generics رایگان
34 آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و هشتم :: نکات تکمیلی Generic ها، کلاس List و کلاس Dictionary رایگان
35 آموزش زبان سی شارپ -قسمت بیست و نهم (پایانی): استثناء ها (Exceptions) و مدیریت خطاها در سی شارپ رایگان
مطالب مرتبط

در حال دریافت اطلاعات

نظرات
هیچ نظری ارسال نشده است

    برای ارسال نظر ابتدا به سایت وارد شوید

    arrow