Loops

To break several loops use labels:

func main() {
    // Loop is the label
    Loop:
        for {
            for {
                break Loop
            }
        }
}

For loop with range example:

func main() {
    // Collection is an array, slice, string, map
    for k, v := range collection {
        fmt.Println(k,v)
    }
}

Another examples:

func main() {
    // Define iterator variables
    var i, j int
    // Fully defined
    for i = 0; i < 5; i++ {
        fmt.Println(i)
    }

    // Without initializer
    i = 0
    for ; i < 5; i++ {
        fmt.Println(i)
    }

    // Without incrementer
    i = 0
    for i < 5 {
        fmt.Println(i)
        i++
    }
    // Short version of loop without initializer and incrementer
    i = 0
    for i < 5 {
        fmt.Println(i)
        i++
    }

    // Infinity loop with break
    i = 0
    for {
        if i == 5 {
            break
        }
        i++
    }

    // Example of two iterators
    for i, j = 0, 0; i < 5; i, j = i+1, j+2 {
        fmt.Println(i, j)
    }
}