دوره‌ها / JAVA / حلقه‌های For (Java For Loop)

حلقه‌های For (Java For Loop)

15 دقیقه Article

حلقه‌های For: تکرار با برنامه دقیق 🔄📊

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

ساختار حلقه For

این حلقه از سه بخش اصلی تشکیل شده است: for (statement 1; statement 2; statement 3) { ... }

  • بخش ۱: مقداردهی اولیه (فقط یکبار در شروع اجرا می‌شود).
  • بخش ۲: شرط اجرا (قبل از هر دور چک می‌شود).
  • بخش ۳: گام تغییر (بعد از هر دور اجرا می‌شود).
{code_block('for (int i = 0; i < 5; i++) {\n System.out.println(i);\n}')}

۱. حلقه For-Each (مخصوص مجموعه‌ها) 📦

این نسخه مخصوص پیمایش راحت‌تر در آرایه‌ها و لیست‌هاست. دیگر نیازی به شمارنده و ایندکس ندارید:

{code_block('String[] cars = {"Volvo", "BMW", "Ford"};\nfor (String i : cars) {\n System.out.println(i);\n}')}

۲. حلقه‌های تودرتو (Nested Loops)

شما می‌توانید یک حلقه را داخل حلقه دیگری قرار دهید (مثلاً برای چاپ یک جدول ضرب):

{code_block('for (int i = 1; i <= 2; i++) {\n for (int j = 1; j <= 3; j++) {\n System.out.println(i + "," + j);\n }\n}')}

مثال حرفه‌ای:

استفاده از گام‌های متفاوت؛ مثلاً چاپ فقط اعداد زوج:

{code_block('for (int i = 0; i <= 10; i = i + 2) {\n System.out.println(i);\n}')}
کارایی (Performance): در جاوا، حلقه‌های For به دلیل ساختار فشرده، معمولاً توسط کامپایلر بهینه‌سازی می‌شوند و سرعت بسیار بالایی دارند.
<hr style="margin: 50px 0; border: 0; border-top: 1px dashed rgba(255,255,255,0.1);">

بخش تخصصی: کنترل جریان در پروژه‌های صنعتی 🛠️💎

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

۱. پیچیدگی زمانی (Time Complexity) در حلقه‌ها

هر بار که حلقه‌ای می‌نویسید، باید به تعداد تکرارهای آن فکر کنید. در جاوا، حلقه‌های تودرتو (Nested Loops) می‌توانند به سرعت باعث کُند شدن برنامه شوند (مرتبه O(n²)). همیشه سعی کنید با استفاده از الگوریتم‌های بهتر یا ساختارهایی مثل HashMap، نیاز به حلقه‌های تودرتو را به حداقل برسانید.

۲. بهینه‌سازی شرط‌ها (Early Return)

یکی از اصولی‌ترین روش‌ها برای نوشتن کدهای تمیز، استفاده از Early Return است. به جای نوشتن شرط‌های تو در تو (Nested Ifs)، ابتدا حالت‌های خطا را چک کرده و از متد خارج شوید. این کار باعث می‌شود کد شما "تخت" (Flat) و خواناتر شود.

۳. امنیت و اعتبار‌سنجی (Validation)

کنترل جریان فقط برای منطق برنامه نیست؛ بلکه برای امنیت هم حیاتی است. همیشه ورودی‌های کاربر را قبل از پردازش با استفاده از شرط‌ها اعتبار‌سنجی کنید تا از بروز مشکلاتی مثل NullPointerException یا حملات تزریق کد جلوگیری شود.

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

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

چاپ ستاره‌ها Easy
سوال تمرین

با استفاده از یک حلقه for، کلمه Star را 4 بار چاپ کنید.

پاسخ تمرین
JAVA
public class Main {
  public static void main(String[] args) {
    for (int i = 0; i < 4; i++) {
      System.out.println("Star");
    }
  }
}

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.