جلسه شماره 93رایگان

For-Each Loop

00:14:45

توضیحات جلسه

🎥 این ویدیو قسمت هشتاد و ششم از بوت‌کمپ رایگان جاواست. 📚 Java Modern Features – آشنایی با for-each Loop در جاوا در این جلسه می‌ریم سراغ for-each loop یا همون enhanced for که از Java 5 به جاوا اضافه شده 🔁 با اینکه for-each جزو فیچرهای خیلی مدرن محسوب نمی‌شه، اما به‌خاطر کاربرد زیادش، داخل پلی‌لیست Java Modern Features قرار گرفته تا راحت‌تر بتونی پیداش کنی 📌 در این ویدیو، هم مباحث تئوری و هم استفاده عملی از for-each رو کامل بررسی کردیم و تفاوتش رو با حلقه for معمولی دیدیم 👀 یاد می‌گیری کِی استفاده از for-each انتخاب خوبیه و کِی بهتره سراغ for کلاسیک بری. 🧠 در این جلسه یاد می‌گیریم: 🔹 for-each چیست و چرا به جاوا اضافه شد 🔹 مرور حلقه for معمولی برای مقایسه 🔄 نحوه استفاده از for-each در آرایه‌ها و کالکشن‌ها ✅ مزایای for-each مثل خوانایی و سادگی کد ⚠️ معایب و محدودیت‌های for-each 🔁 جمع‌بندی نهایی و مرور نکات مهم 💡 بعد از دیدن این ویدیو، می‌تونی آگاهانه تصمیم بگیری که در پروژه‌ها و حتی مصاحبه‌های فنی، از کدوم نوع حلقه استفاده کنی. 💬 گروه پرسش و پاسخ تلگرام: @programmingByFarzadAfi 💬 گروه پرسش و پاسخ بله: @programming_by_farzadafi هر سوالی داشتی، داخل گروه بپرس؛ خودم یا مربی‌های گروه راهنماییت می‌کنیم 💬 🎯 بوت‌کمپ رایگان جاوا 📘 آموزش جاوا به‌صورت پروژه‌محور برای یادگیری عمیق و ورود به بازار کار

جزوه و مستندات

مفاهیم کلیدی

  • For-each Loop Enhanced For Loop

یک ساختار کنترلی در جاوا است که در Java 5 معرفی شد و راه ساده‌تری برای پیمایش یا Iterate عناصر آرایه‌ها و کالکشن‌هایی مانند List و Set فراهم می‌کند.

  • Traverse

به معنای پیمایش یا عبور از تک‌تک عناصر یک ساختار داده، مانند آرایه، از ابتدا تا انتها است.

  • Collection

چارچوبی در جاوا است که مجموعه‌ای از اشیا را در خود ذخیره می‌کند. ساختارهایی مانند List و Set از جمله کالکشن‌هایی هستند که حلقه for-each به‌خوبی با آن‌ها کار می‌کند.

  • Infinite Loop

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

  • Index

شماره جایگاه هر عنصر در آرایه است. در حلقه for-each مستقیماً با Index سروکار نداریم، اما در حلقه‌های قدیمی برای دسترسی به عناصر، استفاده از آن الزامی است.

موارد مصاحبه ای

  • تفاوت اصلی حلقه for معمولی و for-each در چیست؟

حلقه for معمولی دارای سه بخش Initial Value، Condition و Step است و با ایندکس کار می‌کند. اما for-each مستقیماً به مقدار خود عنصر دسترسی دارد و سینتکس ساده‌تری ارائه می‌دهد.

  • مزایای استفاده از for-each نسبت به حلقه‌های قدیمی چیست؟

استفاده از for-each باعث کوتاه‌تر و خواناتر شدن کد یا Concise Code می‌شود. همچنین احتمال بروز خطای ArrayIndexOutOfBoundsException را حذف می‌کند و از ایجاد حلقه‌های بی‌نهایت یا Infinite Loops جلوگیری می‌کند.

  • چه زمانی نباید از حلقه for-each استفاده کرد؟

زمانی که به ایندکس عناصر نیاز داریم، زمانی که می‌خواهیم عناصر را یکی‌درمیان یا با گام‌های خاص پیمایش کنیم، یا زمانی که قصد داریم آرایه را از انتها به ابتدا پیمایش کنیم.

  • آیا حلقه for-each از نظر پرفورمنس با حلقه معمولی برابر است؟

حلقه for-each مقدار بسیار کمی بار اضافی یا Overhead دارد. این تفاوت در آرایه‌ها یا کالکشن‌های بسیار بزرگ و حساس به زمان، ممکن است اثر ناچیزی روی کارایی ایجاد کند.

  • آیا در حلقه for-each امکان تغییر ساختار کالکشن وجود دارد؟

خیر. هنگام پیمایش با for-each نمی‌توان به‌راحتی عناصر را حذف یا ساختار کالکشن را تغییر داد. اگر به ایندکس یا کنترل مستقیم روی عناصر نیاز باشد، بهتر است از حلقه معمولی استفاده شود.

سناریو کاربردی

در این آموزش، یک آرایه از اعداد صحیح با نام int[] numbers تعریف شده است.

برای چاپ کردن این اعداد، ابتدا از حلقه for قدیمی استفاده شد که نیاز به تعریف متغیر i و کنترل طول آرایه داشت.

سپس همین عملیات با for-each انجام شد. ساختار این حلقه به‌صورت زیر است:

for (int n : numbers)

در اینجا جاوا به‌صورت خودکار در هر مرحله، یکی از اعضای آرایه را برمی‌دارد و در متغیر n قرار می‌دهد. سپس می‌توان عملیاتی مانند چاپ کردن یا محاسباتی مثل n + 2 را روی آن انجام داد؛ بدون اینکه نیازی به مدیریت ایندکس یا تعداد تکرارها باشد.

بیشتر بدانید

  • IDE Tip

در محیط IntelliJ IDEA، اگر یک حلقه for معمولی بنویسید، خود IDE با یک هشدار یا Warning پیشنهاد می‌دهد که آن را به‌صورت خودکار به Enhanced For Loop تبدیل کنید.

  • Code Cleanliness

استفاده از for-each باعث می‌شود کد تمیزتر شود و نگهداری یا Maintenance آن ساده‌تر باشد؛ زیرا پیچیدگی‌های مربوط به مدیریت شمارنده یا Counter حذف می‌شود.

  • ساختار سینتکس

برای نوشتن راحت‌تر این حلقه، ابتدا نام آرایه یا کالکشن را بعد از علامت دو نقطه : بنویسید. سپس در سمت چپ، نوع داده‌ای که از آن خارج می‌شود را مشخص کنید.