Go Loops
Loops in Go Programming
Loops in Go allow executing a block of code multiple times until a specific condition is met. The primary looping construct in Go is the for loop. Unlike other languages that support multiple loop types (like while and do-while), Go uses only for, which can be adapted to different looping scenarios.
Types of Loops in Go
Go provides three main ways to use the for loop:
- Traditional for Loop (with Initialization, Condition, and Post Statement)
- For Loop as a while Loop (Condition Only)
- Infinite Loop (without Condition)
1. Traditional for Loop
This structure is similar to loops found in C, C++, and Java. It consists of three components:
- Initialization: Executed once before the loop starts.
- Condition: Checked before each iteration; the loop continues as long as this evaluates to true.
- Post statement: Executed after each iteration.
Syntax:
for initialization; condition; post {
// Code that runs during each iteration.
}Example: Printing Numbers from 1 to 5
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
fmt.Println("Iteration:", i)
}
}OutPut:
Iteration: 1 Iteration: 2 Iteration: 3 Iteration: 4 Iteration: 5
2. for as a While Loop
Go does not have a separate while keyword. Instead, a for loop without an initialization or post-statement behaves like a while loop.
Syntax
for condition {
// Code block
}Example
package main
import "fmt"
func main() {
num := 1
for num <= 5 {
fmt.Println("Number:", num)
num++
}
}OutPut:
Number: 1 Number: 2 Number: 3 Number: 4 Number: 5
3. Infinite Loop
A for loop without any condition runs indefinitely unless stopped using a break statement.
Syntax
for {
// Infinite loop
}Example
package main
import "fmt"
func main() {
count := 0
for {
if count == 3 {
break // Exit the loop
}
fmt.Println("Looping...")
count++
}
}OutPut:
Looping... Looping... Looping…
4. Loop with break Statement
The break statement is used to terminate the loop before the condition becomes false.
Example
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
if i == 4 {
break // Stops the loop when i is 4
}
fmt.Println("Value:", i)
}
}OutPut:
Value: 1 Value: 2 Value: 3
5. Loop with continue Statement
The continue statement skips the current iteration and proceeds to the next one.
Example
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
if i == 3 {
continue // Skips printing when i is 3
}
fmt.Println("Step:", i)
}
}OutPut:
Step: 1 Step: 2 Step: 4 Step: 5
6. Nested Loops
Go allows loops inside loops, useful for working with matrices or complex iterations.
Example
package main
import "fmt"
func main() {
for i := 1; i <= 3; i++ {
for j := 1; j <= 2; j++ {
fmt.Println("Outer:", i, "Inner:", j)
}
}
}OutPut:
Outer: 1 Inner: 1 Outer: 1 Inner: 2 Outer: 2 Inner: 1 Outer: 2 Inner: 2 Outer: 3 Inner: 1 Outer: 3 Inner: 2
7. Looping Over an Array
Using for to iterate through an array.
Example
package main
import "fmt"
func main() {
numbers := [3]int{10, 20, 30}
for i, val := range numbers {
fmt.Println("Index:", i, "Value:", val)
}
}OutPut:
Index: 0 Value: 10 Index: 1 Value: 20 Index: 2 Value: 30
8. Looping Over a Map
The range keyword helps iterate over key-value pairs in a map.
Example
package main
import "fmt"
func main() {
students := map[string]int{"Alice": 25, "Bob": 22, "Charlie": 28}
for name, age := range students {
fmt.Println(name, "is", age, "years old")
}
}OutPut:
Alice is 25 years old Bob is 22 years old Charlie is 28 years old
9. Looping Over a String
A for loop can iterate over a string to access individual characters.
Example
package main
import "fmt"
func main() {
text := "GoLang"
for index, char := range text {
fmt.Printf("Index: %d, Character: %c\n", index, char)
}
}OutPut:
Index: 0, Character: G Index: 1, Character: o Index: 2, Character: L Index: 3, Character: a Index: 4, Character: n Index: 5, Character: g
10. Loop with Labels
Labels allow breaking out of nested loops.
Example
package main
import "fmt"
func main() {
outerLoop:
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
if i == 2 && j == 2 {
break outerLoop
}
fmt.Println("i:", i, "j:", j)
}
}
}OutPut:
i: 1 j: 1 i: 1 j: 2 i: 1 j: 3 i: 2 j: 1
Conclusion
Go simplifies loop constructs by using only the for keyword in various forms. It can function like a traditional for, while, or even an infinite loop. Additional control statements such as break, continue, and labeled loops offer flexibility in controlling execution flow.
Prefer Learning by Watching?
Watch these YouTube tutorials to understand GO Tutorial visually:
What You'll Learn:
- 📌 Go (Golang) Tutorial #7 - Loops
- 📌 Loop in Go | Golang