آموزش سی‌شارپ C# – بخش ۱۴

آموزش سی‌شارپ C# – بخش ۱۴
  • 1391/11/16
  • Jeff Mosawy
  • 8
  • مقدمه

در بخش سیزدهم از آموزش زبان شیرین سی‌شارپ، ما با هم شروع به نوشتن یک پروژه ساده و کوچک ماشین‌حساب کردیم و آن را گام‌به‌گام بایکدیگر تکمیل کردیم. اما اگر دقت کرده باشید، در ماشین‌حسابی که طراحی کردیم تنها عمل جمع انجام می‌شد و خبری از عملیات دیگر ریاضی مثل تفریق و ضرب نبود. برای اینکه بتوانید این عملیات را به ماشین حساب خود اضافه کنید، می‌بایست که کمی با دستورات شرطی آشنا شوید.

  • دستورات شرطی IF

می‌توان دستورات شرطی را در کلمه IF خلاصه نمود! دستورات شرطی یکی از مهم‌ترین و پرکاربردترین دستورات در بیشتر زبان‌های برنامه‌نویسی می‌باشد؛ بطوریکه که شما تقریباً هیچ برنامه‌ی کاربردی‌ای را بدون دستور IF نمی‌توانید طراحی و برنامه‌نویسی کنید. اصطلاح انگلیسی این دستورات را Conditional Logic می‌گویند. پس حتماً آن را بخاطر بسپارید.

برای شروع، ابتدا اجازه دهید که یک مثالی بزنیم. پروژه‌ی ماشین‌حساب را که یادتان هست؟ ماشین‌حساب ما تنها یک عمل ریاضی (جمع) را انجام می‌داد. در آینده ما عملیات جدیدتری را اضافه خواهیم کرد. در حال حاضر، شما نمی‌توانید ماشین‌حساب را با بیشتر از یک عمل ریاضی تکمیل کنید؛ چراکه نمی‌دانید که کاربر بر روی کدام button (جمع یا تفریق) کلیک کرده است! شما باید قادر باشید کدی را بنویسید که دستورات زیر را اجرا کند:

۱. اگر کلید جمع کلیک خورد، جمع بزن!

۲. اگر کلید تفریق کلیک خورد، کم کن!

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

۱. آیا کلید جمع کلیک خورد؟ بله، یا خیر؟

۲. آیا کلید تفریق کلیک خورد؟ بله، یا خیر؟

در هرصورت، جواب هر سوالی یا بله خواهد بود یا خیر. Button مربوطه یا کلیک خورده یا نخوده! (دو حالت بیشتر وجود ندارد)

برای پاسخ به سوالات بالا، ما باید با دستور IF کار کنیم. دستور IF اصولاً به شکل زیر استفاده می‌شود:

if ()

{

            …

}

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

مثلاً برای چک کردن این‌که آیا Buttonای کلیک خورد یا نه، کدی شبیه زیر را باید داشته باشیم:

bool buttonClicked = true;

if (buttonClicked == true)

{

            MessageBox.Show(“The button was clicked!”)

}

به اولین خط از کد بالا دقت کنید:

bool buttonClicked = true;

در این کد ما یک متغیری را با نام buttonClicked تعریف کرده‌ایم. اما bool چیست؟ Bool یک نوع دیگری از متغیرهاست که اینجا اولین باری‌است که شما با آن مواجه می‌شوید. کلمه bool کوتاه شده‌ی کلمه Boolean می‌باشد. شما از bool برای مواقعی استفاده می‌کنید که True (صحیح) یا False (غلط) بودن را می‌خواهید بررسی می‌کنید. این نوع متغیر، بر خلاف سایر متغیرهای پیشین که با آن‌ها آشنا شدید، فقط و فقط می‌توانید مقدار True یا False را داشته باشد. در ادامه‌ی کد بالا، کد زیر را داریم:

if (buttonClicked == true)

{

            MessageBox.Show(“The button was clicked!”)

}

اگر در داخل پرانتز دقت کنید، ما از علامت مساوی را دوبار استفاده کردیم (==). از این علامت معمولاً وقتی که از دستور if استفاده می‌کنید، زیاد به‌کارتان خواهد آمد. استفاده از دو علامت مساوی در کنار هم، به این معنی هست که «مقداری برابر با … را دارد؟». اگر می‌خواهید که کد داخل پرانتز را ترجمه کنیم، اینطور باید بگوییم: «اگر که متغیر buttonClicked دارای ارزشی برابر با True باشد …»

اگر شما یکی از علامت‌های مساوی را فراموش کنید و یک عدد مساوی را قرار دهید، آنگاه دستور شما به دستور مقدار دهی تبدیل می‌شود. یعنی دستور (buttonClicked = True) این را می‌گوید که مقدار buttonClicked را برابر با True قرار بده، اما (buttonClicked == True) در حال بررسی وجود مقدار True در متغیر buttonClicked می‌باشد.

مابین براکت‌های دستور If، ما یک خط کد بسیار ساده‌ای را داریم. یک MessageBox تعریف کرده‌ایم که اگر buttonClicked مقدارش True باشد، این Message Box نمایش داده شود. پس بیاید با هم این کار را امتحان کنیم.

یک پروژه جدید از نوع Windows Application بسازید و یک button به فرم خود اضافه کنید. Text آن را به IF Statement تغییر دهید. بر روی آن دابل-کلیک کنید و کد‌های زیر را طبق تصویر نشان‌داده شده، اضافه کنید:

1-ifStatement

برنامه خود را اجرا کنید و بر روی Button کلیک کنید؛ باید Message Box برای شما نشان داده شود. حال از برنامه‌ی اجرا شده خارج شوید و کد زیر را :

bool buttonClicked = True;

به کد زیر تبدیل کنید:

bool buttonClicked = False;

الان برنامه‌ی خود را یک‌بار دیگر اجرا کنید و بر روی Button کلیک کنید؛ اتفاقی نخواهد افتاد!

اجرا نشدن Message Box به این دلیل است که ما دستور شرطی خودمان را طوری تعریف کردیم که اگر:

buttonClicked == True

آنگاه دستورات اجرا شوند. شما اگر کدهای خودتان را به کد زیر تغییر دهید:

bool buttonClicked = False;

if (buttonClicked == False)

{

            MessageBox.Show(“buttonClicked has a value of False.”);

}

و برنامه را یک‌بار دیگر اجرا کنید، خواهید دید که پنجره MessageBox نمایش داده خواهد شد. درست است که buttonClicked مقدار False را دارد، اما ما دقیقاً در دستور If خودمان، همین مورد را می‌خواستیم امتحان کنیم؛ که اگر buttonClicked مقداری برابر با False داشته باشد، آنگاه درست است.

جهت دریافت این بخش آموزشی به‌صورت یک فایل PDF، اینجا را کلیک کنید.

دیدگاه خود را وارد کنید
تعداد دیدگاه ها : 8 دیدگاه
  1. باسلام خدمت شما:
    من به مدیرسایت پیام دادم ایشون درجواب گفتن : درخود مطلب عنوان کنم.
    من ترم آخر مهندسی IT هستم و پروژه پایانی من با موضوع سی شارپ هست و استاد مربوطه هم سایت Homeandlearn.co.uk برای من انتخاب کردندو از طرفی وقت کافی برای ترجمه سایت مورد نظر را ندارم از شما تقاضا دارم اگر امکان داره مطالب مربوط به سی شارپ را زودترقرار دهید تا من هم بتونم استفاده لازم را ببرم.
    با جواب سریع خود مرا از بلاتکلیفی درآورید.
    باتشکر- فرنوش

    1. سلام دوست عزیزم،

      مطالب آموزشی‌ای که بنده روی سایت می‌نویسم ترجمه فوری و اضافات خود من هست و مطالب را به‌صورت از قبل ترجمه شده ندارم. بنده خودم هم دانشجو هستم؛ شاغل هم هستم. خیلی دوست داشتم تا در حد توانم به شما خدمت بکنم اما باور بفرمایید که در حد و توانم نیست که بتوانم زود به زود مطالب را قرار دهم. خصوصاً مطالب هرچقدر که جلوتر بریم، پیچیده‌تر می‌شود و تفهیم آن (خصوصاً فقط در حد نوشتاری و عکس) آنطور که باید باشد، سخت است.

      من بشدت از شما عذرخواهی می‌کنم. اما اگر هرگونه کمکی از دست من برمیاد، حتماً در خدمت شما خواهم بود.

    2. ازلطف شما ممنون. همین قدر جواب بنده را زور دادید سپاسگزارم.
      ببخشید یک سوال دیگر داشتم. شما کتابی رو میشناسید که سی شارپو به صورت گام به گام و با عکس توضیح بده؟
      با تشکر

    3. دوست عزیزم،

      من کلاً برای آموزش سی‌شارپ همیشه کتاب‌های انتشارات O’Reilly رو پیشنهاد می‌کنم؛ چونکه واقعاً مفصل، مفید و حرفه‌ای هستند. البته یک کتاب دیگری نیز به نام Programming Microsoft Windows with C Sharp هست که این کتاب هم بد نیست، اما اگر قصد دانلود آن را دارید، یافتن لینک دانلود آن به راحتی نخواهد بود. اما پیدا می‌کنید حتماً!
      البته تمامی کتاب‌های فوق انگلیسی زبان هستند؛ کتاب‌های فارسی رو بنده تا جایی که دیدم بیشترشون همه همراه با عکس بودند.
      امری باشه بنده در خدمت شما هستم.
      موفق باشید!

  2. ممنون
    فوق العادس
    من کد تغییر رنگ botton با حرکت موس روی اونو میخوام(مبحث رویدادها)
    اگه بگی ممنون میشم

    1. سلام دوست عزیز،

      شما از همون منوی کناری که برای Properties هست، یک آیکون برق وجود داره؛ روی اون که کلیک کنید، تمام Event های ممکن برای یک شیء براتون ظاهر می‌شه. شما به دنبال Event مربوطه (مثلاً Event ای که وقتی موس روی اون بره) می‌گردید و با دوبار کلیک کردن بر روی اون، وارد بخش کد Event مربوطه می‌شید، داخل اون کاری رو که می‌خواید به صورت کد می‌نویسید.
      مثلاً برای کار شما، اگر شما یک button با نام oneButton داشته باشید، Property مربوط به background color رو تغییر می‌دید.

      موفق باشید!

  3. بهترین آموزش سی شارپیه که تا حالا دیدم حتی کتابای درسی هنرستان هم اینقدر خوب یاد نمیدن خیلی ممنون

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *