خروج و ادامه (Java Break/Continue)
خروج و ادامه (Break/Continue): کنترل جریان در لحظه 🛑🏃
گاهی نیاز داریم روندِ نرمال یک حلقه را در وسطِ کار تغییر دهیم. جاوا دو کلمه کلیدی قدرتمند برای این کار در اختیار ما میگذارد.
۱. دستور break
این دستور باعث میشود کلِ حلقه در همان لحظه متوقف شود و برنامه به خطِ بعد از حلقه برود (پرش به بیرون از حلقه):
{code_block('for (int i = 0; i < 10; i++) {\n if (i == 4) { break; }\n System.out.println(i);\n} // چاپ اعداد 0 تا 3')}۲. دستور continue
این دستور فقط دور فعلی از حلقه را متوقف میکند و بلافاصله به شروع دورِ بعدی میرود (پرش به گام بعدی):
{code_block('for (int i = 0; i < 10; i++) {\n if (i == 4) { continue; }\n System.out.println(i);\n} // عدد 4 چاپ نمیشود')}۳. استفاده در حلقه While
شما میتوانید از break و continue در حلقههای while هم استفاده کنید. اما مراقب باشید که در continue، شمارنده را قبل از دستور قرار دهید، وگرنه در یک حلقه بیپایان گیر میکنید!
تفاوت اصلی:
Break: بازی تمام شد، از زمین خارج شو.
Continue: این مرحله را نادیده بگیر و برو مرحله بعد.
break labelName;، از چندین حلقه تو در تو به صورت همزمان خارج شوید!
بخش تخصصی: کنترل جریان در پروژههای صنعتی 🛠️💎
در این بخش، به نکاتی میپردازیم که تفاوت یک کدآموز و یک مهندس نرمافزار حرفهای را مشخص میکنند.
۱. پیچیدگی زمانی (Time Complexity) در حلقهها
هر بار که حلقهای مینویسید، باید به تعداد تکرارهای آن فکر کنید. در جاوا، حلقههای تودرتو (Nested Loops) میتوانند به سرعت باعث کُند شدن برنامه شوند (مرتبه O(n²)). همیشه سعی کنید با استفاده از الگوریتمهای بهتر یا ساختارهایی مثل HashMap، نیاز به حلقههای تودرتو را به حداقل برسانید.
۲. بهینهسازی شرطها (Early Return)
یکی از اصولیترین روشها برای نوشتن کدهای تمیز، استفاده از Early Return است. به جای نوشتن شرطهای تو در تو (Nested Ifs)، ابتدا حالتهای خطا را چک کرده و از متد خارج شوید. این کار باعث میشود کد شما "تخت" (Flat) و خواناتر شود.
۳. امنیت و اعتبارسنجی (Validation)
کنترل جریان فقط برای منطق برنامه نیست؛ بلکه برای امنیت هم حیاتی است. همیشه ورودیهای کاربر را قبل از پردازش با استفاده از شرطها اعتبارسنجی کنید تا از بروز مشکلاتی مثل NullPointerException یا حملات تزریق کد جلوگیری شود.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
حلقهای بنویسید که از 1 تا 10 بشمارد، اما وقتی به عدد 7 رسید با دستور break متوقف شود. (اعداد 1 تا 6 چاپ شوند).
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if (i == 7) {
break;
}
System.out.println(i);
}
}
}
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.