آموزش قدم به قدم جاوا – قسمت ششم – بخش اول

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

دستورات شرطی

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

دستور if

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

“شرط مورد نظر” باید یک عبارت boolean باشد. حال اگر این عبارت true باشد یعنی شرط برقرار و اگر false باشد یعنی شرط برقرار نیست.

اگر شرط برقرار باشد دستوراتی که داخل بلاک دستور if قرار دارند اجرا می‌شوند. (به یک جفت آکولاد باز و بسته که داخل آن کدی نوشته شود یک بلاک می‌گویند)

مثال:

همانطور که از قسمت عملگرها می‌دانید نتیجه عبارتی که به عنوان شرط دستور if قرار گرفته یک عبارت boolean است یعنی اگر باقی‌مانده تقسیم متغیر number بر 2 برابر با 0 شود شرط دستور if برابر با true و در غیر اینصورت برابر با false خواهد شد.

همانطور که می‌دانید اگر باقی‌مانده تقسیم یک عدد بر 2 برابر با 0 شود آن عدد زوج است. اگر برنامه را اجرا کنید عبارت Adad Zoj Ast چاپ خواهد شد اما اگر مثلا مقدار number را به 13 تغییر دهید آنگاه هیچ چیزی چاپ نخواهد شد.

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

ترجمه فارسی دستور شرطی ما به این شرح است: اگر باقی‌مانده تقسیم مقدار متغیر number بر 2 برابر با 0 شد عبارت Adad Zoj Ast را چاپ کن، و در غیر این‌صورت عبارت Adad Fard Ast را چاپ کن. (به عبارات بولد شده دقت کنید.)

در کدی که نوشتیم فقط ۲ شرط بررسی می‌شود: بخش پذیر بودن یک عدد بر ۲ و عکس آن.

اما در بسیاری از مواقع باید چند شرط را بررسی کنیم. برای بررسی‌کردن شرط‌های متعدد باید از else if استفاده کنیم:

همانطور که می‌بینید شرط دوم را درون پرانتز else if قرار دادیم. اگر شرط اول برقرار نباشد و این شرط برقرار باشد آنگاه بلاک else if اجرا خواهد شد.

ترجمه فارسی این دستور این است: اگر مقدار متغیر x از مقدار متغیر y بزرگتر بود عبارت x Bozorgtar Az y Ast را چاپ کن در غیر این‌صورت اگر مقدار متغیر y از مقدار متغیر x بزرگتر بود عبارت y Bozorgtar Az x Ast را چاپ کن و در غیر این‌صورت (اگر هیچ‌کدام از این دو شرط برقرار نبود.) عبارت x Mosavi Ast Ba y را چاپ کن.

نکته: در نوشتن else ifها محدودیتی نداریم و می‌توانیم n تعداد شرط را با else if بررسی کنیم.

نکته: آکولاد‌های دستور if را به دو شکل می‌توان نوشت.

شکل اول:

شکل دوم:

نکته: اگر قرار است در بلاک if یا else یا else if تنها یک دستور اجرا شود می‌توان آکولادها را قرار نداد. مثلا کد زیر:

را به این صورت نیز می‌توان نوشت:

توجه داشته باشید که در هر صورت برای خوانایی کد فاصله گذاری ها (Indentation) را رعایت کنید.

دستور switch

اگر بخواهیم تساوی یک متغیر با مجموعه‌ای از مقادیر را مقایسه کنیم می‌توانیم به جای نوشتن else ifهای متعدد از دستور switch استفاده کنیم.

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

می‌توانیم به هر تعداد case داشته باشیم.

دستور break به این دلیل در هر case گذاشته می‌شود که اگر آن case برقرار بود از دستور switch خارج شده و case های دیگر بررسی نشود.

نکته دیگر این‌که فقط تساوی متغیر مورد نظر با مقدار خاصی را می‌توان در caseها بررسی کرد نه مثلا بزرگتر یا کوچکتر بودن آن.

اگر هیچکدام از case ها برقرار نبود آنگاه کدهایی که در قسمت default نوشته شده‌اند اجرا خواهند شد.

برنامه زیر مثالی مناسب برای آشنایی با دستور switch است:

در متغیر weekDay شماره یکی از روزهای هفته را گذاشتیم. در دستور switch این شماره با اعداد 0 تا 6 مقایسه می‌شود و اگر با هرکدام از آن‌ها برابر بود نام روز هفته مربوط به شماره آن چاپ خواهد شد. همچنین اگر عددی که در weekDay قرار می‌دهیم در محدوده 0 تا 6 نباشد آنگاه دستوری که در قسمت default قرار دارد اجرا خواهد شد.

مثال‌های بیشتر

در آخر چند مثال از دستورات شرطی برای فهم بهتر مطلب می‌آوریم.

مثال 1 : تعیین بزرگ‌ترین عدد بین 3 عدد

مثال 2 : تعیین این‌که آیا یک عدد بر 7 و 2 بخش پذیر است یا خیر

مثال 3 : تعیین اینکه آیا سه خط با طول‌های a و b و c می‌توانند اضلاع یک مثلث را تشکیل دهند یا خیر. (باید مجموع طول هر دو خط از طول خط دیگر بزرگتر باشد)

 

مصطفی نصیری

دانشجوی نرم افزار هستم و علاقه شدیدی به برنامه نویسی مخصوصا با زبان جاوا دارم! در حال حاضر تمرکزم روی اندرویده. دوست دارم چیزایی که یاد میگیرم رو با بقیه به اشتراک بگذارم :)

همچنین ممکن است دوست داشته باشید ...

دیدگاهتان را بنویسید

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