A loop repeats a block of code until a certain condition is met.
A definite loop repeats a fixed number of times. It has:
for number := 0; number < 5; number++ {fmt.Print(number)}
An indefinite loop repeats while a condition remains true.
number := 0 // Initialize a variable to be used inside the loopfor number < 5 {fmt.Println(number)number++ // Update the variable being used}
for
keyword for both definite and indefinite loops.In Go, the language is simplified by using only the for
keyword for both definite and indefinite loops.
When a condition is true forever, then a special type of indefinite loop is created, called an infinite loop.
for {// Loop body logic// This repeats forever}// This is never reached
The break keyword stops the loop at the current iteration.
animals := []string{""Cat"", ""Dog"", ""Fish"", ""Turtle""}for index := 0; index < len(animals); index++ {if animals[index] == ""Dog"" {fmt.Println(""Found the perfect animal!"")break // Stop searching the array}}
The continue keyword skips the loop to the next iteration.
jellybeans := []string{""green"", ""blue"", ""yellow"", ""red"", ""green"", ""yellow"", ""red""}for index := 0; index < len(jellybeans); index++ {if jellybeans[index] == ""green"" {continue}fmt.Println(""You ate the"", jellybeans[index], ""jellybean!"")}
In Go, the range keyword can be used in a map or array to work through each contained item one at a time within a loop.
letters := []string{""A"", ""B"", ""C"", ""D""}for index, value := range letters {fmt.Println(""Index:"", index, ""Value:"", value)}