شرطها (Java If...Else)
شرطها (If...Else): تصمیمگیری هوشمند در کد 🚦🧠
دستورات شرطی به ما اجازه میدهند تا بخشی از کد را فقط در صورتی اجرا کنیم که یک شرط خاص "درست" باشد. این اولین قدم برای ساختن برنامههای هوشمند است.
۱. دستور if
سادهترین حالت؛ اگر شرط برقرار باشد، کدهای داخل آکولاد اجرا میشوند:
{code_block('if (20 > 18) {\n System.out.println("20 is greater than 18");\n}')}۲. دستور else
برای زمانی که شرط if برقرار نباشد، یک نقشه جایگزین داریم:
۳. دستور else if
وقتی میخواهیم چندین شرط مختلف را به ترتیب چک کنیم:
{code_block('int balance = 500;\nif (balance > 1000) {\n System.out.println("Rich!");\n} else if (balance > 100) {\n System.out.println("Standard.");\n} else {\n System.out.println("Poor.");\n}')}عملگر شرطی ساده (Ternary Operator):
روشی کوتاه برای نوشتن if...else در یک خط:
if فقط یک خط کد دارید، آکولادها اختیاری هستند؛ اما همیشه از آکولاد استفاده کنید. این کار از بسیاری از باگهای منطقی در آینده جلوگیری میکند.
else if، شرطهایی که احتمال وقوع بیشتری دارند را بالاتر بنویسید تا برنامه زودتر از شرط خارج شود.
بخش تخصصی: کنترل جریان در پروژههای صنعتی 🛠️💎
در این بخش، به نکاتی میپردازیم که تفاوت یک کدآموز و یک مهندس نرمافزار حرفهای را مشخص میکنند.
۱. پیچیدگی زمانی (Time Complexity) در حلقهها
هر بار که حلقهای مینویسید، باید به تعداد تکرارهای آن فکر کنید. در جاوا، حلقههای تودرتو (Nested Loops) میتوانند به سرعت باعث کُند شدن برنامه شوند (مرتبه O(n²)). همیشه سعی کنید با استفاده از الگوریتمهای بهتر یا ساختارهایی مثل HashMap، نیاز به حلقههای تودرتو را به حداقل برسانید.
۲. بهینهسازی شرطها (Early Return)
یکی از اصولیترین روشها برای نوشتن کدهای تمیز، استفاده از Early Return است. به جای نوشتن شرطهای تو در تو (Nested Ifs)، ابتدا حالتهای خطا را چک کرده و از متد خارج شوید. این کار باعث میشود کد شما "تخت" (Flat) و خواناتر شود.
۳. امنیت و اعتبارسنجی (Validation)
کنترل جریان فقط برای منطق برنامه نیست؛ بلکه برای امنیت هم حیاتی است. همیشه ورودیهای کاربر را قبل از پردازش با استفاده از شرطها اعتبارسنجی کنید تا از بروز مشکلاتی مثل NullPointerException یا حملات تزریق کد جلوگیری شود.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
یک متغیر score با مقدار 85 تعریف کنید. اگر نمره بیشتر یا مساوی 50 بود چاپ کنید Pass، در غیر این صورت چاپ کنید Fail.
public class Main {
public static void main(String[] args) {
int score = 85;
if (score >= 50) {
System.out.println("Pass");
} else {
System.out.println("Fail");
}
}
}
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.