Loop in java | حلقه ها در جاوا
📖توضیحات درس
📄جزوه
مفاهیم کلیدی
-
Loop
ویژگیای در زبانهای برنامهنویسی که اجازه میدهد مجموعهای از دستورالعملها یا فانکشنها را تا زمانی که یک شرط خاص
trueباشد، بهطور مکرر اجرا کنیم. این کار باعث جلوگیری از تکرار کد و مدیریت بهتر حافظه میشود. -
For Loop
ساختاری برای تکرار که معمولاً زمانی استفاده میشود تعداد دفعات تکرار از قبل مشخص باشد. این حلقه شامل سه بخش اصلی است: مقداردهی اولیه (
initialization)، شرط تکرار (condition) و نحوه گامبرداری (increment/decrement). -
While Loop
این حلقه تا زمانی که شرط داخل پرانتز آن
trueبماند، به اجرای کد ادامه میدهد. شرط در این حلقه قبل از اجرای بدنه بررسی میشود؛ بنابراین اگر شرط از ابتداfalseباشد، بدنه حلقه هرگز اجرا نخواهد شد. -
Do-While Loop
مشابه حلقه
Whileاست، با این تفاوت که شرط بعد از اجرای بدنه بررسی میشود. یعنی محتوای داخل حلقهDo-Whileهمواره حداقل یک بار اجرا میشود، حتی اگر شرطfalseباشد. -
Infinite Loop
حلقهای که هرگز پایان نمییابد. این وضعیت زمانی رخ میدهد که شرط خروج از حلقه هرگز
falseنشود؛ مثلاً فراموش کردن افزایش مقدار شمارنده در حلقهWhile. -
Nested Loop
قرار دادن یک حلقه در داخل حلقهای دیگر. این ساختار برای کار با دادههای چندبعدی (مثل ماتریسها یا جدول ضرب) و ترسیم اشکال هندسی کاربرد دارد.
-
Break
کلمه کلیدی برای خروج فوری و کامل از حلقه. به محض رسیدن برنامه به
break، کدهای باقیمانده در حلقه نادیده گرفته میشوند و اجرا به خط بعد از حلقه میرود. -
Continue
دستوری برای رد کردن (
skip) تکرار فعلی. با اجرایcontinue، کدهای باقیمانده در همان دور از حلقه اجرا نمیشوند و برنامه مستقیماً به ابتدای حلقه برای بررسی تکرار بعدی میرود.
نکات مهم مصاحبهای
-
تفاوت اصلی بین While و Do-While در چیست؟
در حلقه
Whileشرط در ابتدا بررسی میشود و ممکن است بدنه اصلاً اجرا نشود. درDo-Whileابتدا بدنه یک بار اجرا میشود و سپس شرط بررسی میگردد؛ بنابراین کد حداقل یک بار اجرا خواهد شد. -
چه زمانی از Break و چه زمانی از Continue استفاده میکنیم؟
وقتی میخواهیم به محض یافتن نتیجهٔ خاص یا وقوع خطا، کلاً از حلقه خارج شویم، از
breakاستفاده میکنیم. اگر فقط یک آیتم را نادیده بگیریم و بررسی بقیه را ادامه دهیم، ازcontinueاستفاده میکنیم. -
چگونه میتوان یک حلقه بینهایت (Infinite Loop) ایجاد کرد؟
سادهترین راه در جاوا، استفاده از
while(true)یا ساختارfor(;;)است؛ در هر دو حالت شرط خروج تعریف نشده باشد. -
Nested Loop چگونه کار میکند؟
به ازای هر یک بار اجرای حلقه بیرونی (
Outer Loop)، حلقه داخلی (Inner Loop) یک بار بهطور کامل — از ابتدا تا انتها — اجرا میشود.
مثال یا سناریوی کاربردی
سناریو: محاسبه مجموع اعداد فرد ورودی توسط کاربر
در این مثال، برنامه ابتدا تعداد اعدادی را که کاربر میخواهد وارد کند میگیرد؛ سپس در یک حلقه به همان تعداد، ورودی دریافت کرده و فقط اعداد فرد را جمع میزند.
- تعریف یک شیء
Scannerبرای دریافت ورودی. - دریافت تعداد ورودیها (مثلاً
n). - استفاده از حلقه
forبرای تکرارnبار. - در هر تکرار، عدد جدید را دریافت کرده و با عملگر باقیمانده (
%) بررسی میکنیم عدد فرد است یا نه (number % 2 != 0). - اگر عدد فرد بود، آن را به متغیر
resultاضافه میکنیم.
int result = 0;
for (int i = 0; i < n; i++) {
int number = scanner.nextInt();
if (number % 2 != 0) {
result += number;
}
}
System.out.println("Sum of odd numbers: " + result);
بیشتر بدانید
-
IDE Tip
در محیط
IntelliJ IDEAمیتوانید میانبرforiرا بزنید و سپس کلیدTabرا فشار دهید تا ساختار استاندارد حلقهforبهسرعت ایجاد شود. -
Live Template
در تنظیمات
IntelliJ، در بخشLive Templates، میتوانید الگوهای دلخواه تعریف کنید (مثلاً برای ایجاد سریعScanner) تا با نوشتن یک کلمه کوتاه، کدهای پرتکرار بهصورت خودکار درج شوند.
