Go for loops
1 min readAug 13, 2023
Go uses the keyword for to execute loops. In Go doesn’t exist while loops (the keyword while doesn’t exist), we have to use a for to create a while loop.
package main
import "fmt"
const MAX = 10
func main() {
for i := 0; i < MAX; i++ {
fmt.Printf("i = %d\n", i)
}
}
Using range. The range allows getting from an array or slices the index and their value.
package main
import "fmt"
const MAX = 10
func main() {
arr := [MAX]int{1,2,3,4,5,6,7,8,9,10}
slc := []float64{2.1, 2.4, 1.5, 4.4, 10.1, 234.1}
alphabet := "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
fmt.Println("For Array:")
for index, value := range arr {
fmt.Printf("arr[%d] = %v\n", index, value)
}
fmt.Println("For Slice:")
for index, value := range slc {
fmt.Printf("slc[%d] = %v\n", index, value)
}
fmt.Println("For a string (alphabet):")
for index, c := range alphabet {
fmt.Printf("%d - %c\n", index, c)
}
}
While looping in Go.
package main
import "fmt"
const MAX = 10
func main() {
arr := [MAX]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
i := 0
for i < MAX {
fmt.Printf("arr[%d] = %d\n", i, arr[i])
i++
}
i = 0
for {
if i >= MAX {
break
}
fmt.Printf("arr[%d] = %d\n", i, arr[i])
i++
}
}
Example: Playing with a matrix.
package main
import "fmt"
const MAX = 5
func main() {
matrix := [MAX][MAX]int{
{1,0,0,0,0},
{0,1,0,0,0},
{0,0,1,0,0},
{0,0,0,1,0},
{0,0,0,0,1},
}
for i, j := 0, 0; i < MAX && j < MAX; i, j = i+1, j+1 {
fmt.Println(i, j, matrix[i][j])
}
}