حلقه for

حلقه for در Go با همه حالت‌ها: سه‌بخشی، while-style، بی‌نهایت و for range.

فقط یک حلقه: for!

Go فقط یک دستور حلقه دارد: for — اما به همه شکل‌ها:

۱. حلقه سه‌بخشی کلاسیک

for i := 0; i < 5; i++ {
    fmt.Println("تکرار", i)
}

۲. حالت while-style

Go دستور while ندارد — اما با حذف بخش اول و سوم، همان while می‌شود:

i := 0
for i < 5 {
    fmt.Println("تکرار", i)
    i++
}

۳. حلقه بی‌نهایت

for {
    fmt.Println("برای همیشه...")
    break   ← بدون break هرگز تمام نمی‌شود!
}

۴. for range — پیمایش کالکشن‌ها

// آرایه و Slice
fruits := []string{"سیب", "موز", "پرتقال"}
for index, value := range fruits {
    fmt.Println(index, value)
}

// فقط مقدار
for _, fruit := range fruits {
    fmt.Println(fruit)
}

// Map
ages := map[string]int{"علی": 25, "سارا": 30}
for name, age := range ages {
    fmt.Println(name, age)
}

// رشته (کاراکتر به کاراکتر)
for i, r := range "سلام" {
    fmt.Println(i, string(r))
}

حلقه تو در تو

for i := 1; i <= 3; i++ {
    for j := 1; j <= 3; j++ {
        fmt.Printf("%d×%d=%d ", i, j, i*j)
    }
    fmt.Println()
}

الگوهای رایج

جمع زدن

numbers := []int{10, 20, 30, 40}
total := 0
for _, n := range numbers {
    total += n
}
fmt.Println(total)   ← 100

جدول ضرب

for i := 1; i <= 10; i++ {
    fmt.Printf("۷ × %d = %d\n", i, 7*i)
}

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

ابزارهای مرتبط