مقدمه اي بر سي شارپ : قسمت سوم

مقدمه اي بر سي شارپ : قسمت سوم

ساختارهاي تصميم گيري :
در بسياري از موارد هنگام برنامه نويسي لازم است تا از عبارات شرطي استفاده كنيم. براي انجام اينكار دو روش عمده وجود دارد. استفاده از if و يا switch . از if بيشتر براي مقايسه هايي تكي و كوچك استفاده مي شود و حاصل مقايسه ي آن يا true است و يا false . از عبارت switch هنگامي استفاده مي شود كه مقايسه هاي متعددي بايد در مورد يك مقدار صورت گيرد.
هر دو عبارت
if و switch توسط عبارتهايي Boolean كنترل مي شوند ( true و يا false ) . در هنگام استفاده از if اگر عبارت Boolean حاصل اش true باشد اولين قسمت شرط اجرا مي شود و سپس برنامه از انتهاي if ادامه پيدا مي كند. اگر حاصل عبارت Boolean مساوي false باشد كنترل برنامه به قسمت else منتقل مي شود.

مثال :
يك پروژه ي جديد
console باز كنيد و نام آنرا ex04 بگذاريد. سپس كد زير را در آن وارد و جرا كنيد : <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

using System;

namespace ex04
{
class Class1
{
[STAThread]
static void Main(string[ ] args)
{
Console.WriteLine("Enter 1 character to be evaluated");

char cUserInput = (char) Console.Read();

if ( char.IsDigit( cUserInput ) )
Console.WriteLine("The char is a number!");
else
Console.WriteLine("The char is not a number!");

}
}
}

نكاتي در مورد كد فوق :
1- سي شارپ به كوچكي و بزرگي حروف حساس است . براي مثال cUserInput با cUserinput فرق مي كند.
2- حتما بايد بعد از
if پرانتزها ذكر گردد.
3- حتما بايد داخل
if يك عبارت Boolean ذكر شود مانند if(x>5) .
4- در سي شارپ مقايسه ي تساوي دو عبارت با == و انتساب با = انجام مي شود. ( موارد 1 و 4 مواردي هستند كه اغلب تازه كاران با آن مشكل دارند! ) براي مثال
if(i==3) صحيح است اما if(i=3) در سي شارپ معنايي ندارد.
5- اگر بعد از
if يك خط كد قرار گيرد نيازي به آوردن آكولاد ها نيست. هنگامي نياز به آكولادها مي باشد كه بيش از يك خط بايد بعد از if قرار گيرد.
6- در سي شارپ همانند اسلاف خودش براي تبديل نوع هاي داده ايي مي توان به صورت زير نيز عمل كرد : (
char) Console.Read() ; يعني دريافتي Read به char تبديل مي شود .در اين مورد باز هم صحبت خواهد شد.
7- همانطور كه ذكر شد در سي شارپ همه چيز شيء است حتي نوع هاي پايه ايي مانند
char . با استفاده از متد IsDigit آن مي توان چك كرد كه آيا ورودي آن عدد است يا خير؟ ( در مورد متدها صحبت خواهد شد )

استفاده از
switch :
بهتر است اين مورد را با يك مثال دنبال كنيم.
پروژه ي سي شارپ جديدي به نام
ex05 در حالت console در VS.NET باز كنيد. دراينجا مي خواهيم يك كلاس جديد تعريف كرده و توسط خاصيتي كه در آن ايجاد مي كنيم متوجه شويم روز جاري مطابق سيستم چه روزي است .
يك كلاس جديد از منوي پروژه ،‌با استفاده از گزينه ي
Addclass به برنامه اضافه كنيد و نام آنرا در ابتدا clsDate بگذاريد.

using System;

namespace ex05
{
///
/// Summary description for clsDate.
///
public class clsDate
{
public clsDate()
{
//
// TODO: Add constructor logic here
//
}

public string systemDayOfWeek
{
get
{

string res="";
switch( System.DateTime.Now.DayOfWeek.ToString())
{
case "Saturday" :
res = "شنبه";
break;

case "Sunday" :
res = "يک شنبه" ;
break;

case "Monday":
res = "دوشنبه";
break;

case "Tuesday":
res = "سه شنبه";
break;

case "Wednesday":
res = "چهار شنبه";
break;

case "Thursday":
res = "پنج شنبه";
break;

case "Friday":
res = "جمعه" ;
break;
}
return res ;
}
}
}
}

هنگام ذخيره كردن اين كد ويژوال استوديو به شما اخطار مي دهد كه كد داراي حروف يونيكد است. از منوي فايل گزينه ي advanced save options را انتخاب كنيد. در اينجا مي توان نوع ذخيره سازي را يونيكد انتخاب كرد.

براي استفاده از كلاس فوق مانند مطالبي كه در قسمت قبل گفته شد عمل مي كنيم :

using System;

namespace ex05
{
class Class1
{
[STAThread]
static void Main(string[ ] args)
{
clsDate m_var = new clsDate();
Console.WriteLine( m_var.systemDayOfWeek );
Console.ReadLine();

}
}
}

هر چند حالت console يونيكد را پشتيباني نمي كند ولي اصل برنامه براي ما مهم است و در آينده بيشتر از آن استفاده خواهيم كرد.

همانطور كه ملاحظه كرديد اگر از
switch استفاده نمي شد بايد از 7 عدد if ‌استفاده مي گرديد كه اصلا ظاهر حرفه اي و شكيلي نداشت!
با استفاده از عبارت زير كار مقايسه شروع مي شود. روز سيستم در يافت شده و وارد بدنه ي
switch مي گردد. سپس توسط case ها چك مي شود تا تساوي آن با عبارت بعد از case به اثبات برسد.

switch( System.DateTime.Now.DayOfWeek.ToString())

اگر هر كدام از عبارات بعد از case صحيح بودند كار پس از آن كه در اينجا انتساب است انجام شده و سپس توسط break كنترل برنامه از switch خارج مي شود و ادامه ي كار دنبال مي گردد.
اگر هيچكدام از
case ها صحيح نبودند مي توان از گزينه ي default هم در صورت نياز استفاده كرد. اين حالت در يك چنين مواقعي اجرا مي گردد.

 

منبع:

http://kks.blogfa.com


مطالب مشابه :


آموزش برنامه نویسی گرافیک در سی شارپ_قسمت نهم

دستورات گرافیک سی شارپ #c آموزش برنامه نویسی گرافیک سی شارپ ساخت کامپوننت در سی شارپ




عضویت در بخش:آموزش برنامه نویسی سی شارپ c# windows Application

دستورات گرافیک سی شارپ #c آموزش برنامه نویسی گرافیک سی شارپ ساخت کامپوننت در سی شارپ




آموزش برنامه نویسی گرافیک در سی شارپ_قسمت یازدهم

C# windows Application آموزش برنامه نویسی سی شارپ: ايجاد يك پروژه تحت ويندوز در دات نت. بررسي فرم ها در




گرافیک در سی شارپ

گرافیک در سی شارپ. پروژه درس گرافیک برچسب‌ها: graphic, C, گرافیک, سی شارپ, Source Code




مقدمه اي بر سي شارپ : قسمت سوم

دستورات گرافیک سی شارپ #c آموزش برنامه نویسی گرافیک سی شارپ ساخت کامپوننت در سی شارپ




مقدمه اي بر سي شارپ : قسمت بيستم

آموزش گرافیک در سی شارپ. مقدمه اي بر سي شارپ : قسمت بيستم . مقدمه اي بر سي شارپ : قسمت بيستم .




گرافیک در سی شارپ(استاد دوره : مهندس وحید اشرف)

الگوریتم رسم خط در سی شارپ: ابتدا یک عکس یا جعبه عکس در فرم قرار می دهیم: public partial class Form1: Form




آموزش برنامه نویسی سی شارپ C# windows Application - قسمت ششم

دستورات گرافیک سی شارپ #c آموزش برنامه نویسی گرافیک سی شارپ ساخت کامپوننت در سی شارپ




مقدمه اي بر سي شارپ : قسمت هفتم

دستورات گرافیک سی شارپ #c آموزش برنامه نویسی گرافیک سی شارپ ساخت کامپوننت در سی شارپ




آشنایی با کلاسها و اشیا (3)

رسم و گرافیک در سی شارپ [این مطلب در خصوص وراثت آمده و در بخش های بعدی مطلب گرافیک بصورت مجزا




برچسب :