A for loop is a repeat control structure that lets us write a loop that’s executed a particular number of times. The Go for loop is used for repeating a set of statements a number of times.
A few main points about Go for loop:
- It’s the only available loop in Go language.
- There are two variations of for loop in Go
- 1- Counter-controlled iteration
- 2- Condition-controlled iteration.
- The while loop is not available but the for loop may act as a while loop (see an example later)
Structure of for loop
The general structure of for loop in Go language is:
for initialization; condition; post{
// statements to execute here
}
A simple example of for loop
In this example, we are using for loop to display numbers. The variable is initialized with a value=5 and it will display numbers till it reaches 15.
The code:
package main import "fmt" func main() { for x := 5; x < 16; x++ { fmt.Print(x,"\n") } }
The output of the above code:
5
6
7
8
9
10
11
12
13
14
15
Using break statement with for loop
The break statement can be used inside a for loop that will terminate the loop and control goes at the next line outside the loop. An example of the break statement is shown below:
The code:
package main import "fmt" func main() { var x int = 5 for x < 15 { fmt.Printf("%d\n", x); x++; if x > 10 { /* break will terminate as value reaches above 10 */ break; } } }
The output:
5
6
7
8
9
10
For loop with continue example
For moving to the next iteration, you may use the continue statement. See an example below:
package main import "fmt" func main() { for x := 1992; x <= 2022; x++ { if x%4 != 0 { continue } fmt.Println(x) } }
The output is leap years from 1992 to 2022:
1992
1996
2000
2004
2008
2012
2016
2020
Using for loop as while loop example
The example below shows using for loop acting as a while loop (if you wonder where is while loop in the Go language?)
package main import "fmt" func main() { x := 1 for x < 30 { x += x fmt.Println(x) } }
The result:
2
4
8
16
32
A for example with map
You may also use a for loop to iterate over key/value pairs of a map. See this example:
package main import "fmt" func main() { Fmap := map[int]string{ 1:"Mike", 2:"Qiado", 3:"Diana", } for key, value:= range Fmap { fmt.Println(key, value) } }
Output:
1 Mike
2 Qiado
3 Diana