• مقدمه

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

  • دستورات شرطی 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، اینجا را کلیک کنید.