حلقه 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)
}
این مبحث بخشی از دوره آموزش کامل گو است.