Go Basics

Go for Loops

Go has one loop keyword. See its four forms: counting, while-style, infinite and range.

  • Beginner
  • 3 min read
  • 1 runnable example
What you'll learn
  • The three-part for
  • for as a while loop
  • range
for i := 1; i <= 3; i++
1print
2print
3print
4stop
The loop ends when i <= 3 is false.

One keyword, four forms

Go has one loop keyword: for. It can count with three parts, repeat while a condition is true, run forever until break, or visit every item with range.

The first loop has a start, a condition and a step. The second has only a condition, like while in other languages. The third has nothing and ends with break. range over a string gives the position and the character of each letter.

Key points

  1. for i := 1; i <= 3; i++ counts.
  2. for condition { } works like while.
  3. range visits every item.

Runnable Go example

Go
Run code →
main.go
package main

import "fmt"

func main() {
	for i := 1; i <= 3; i++ {
		fmt.Println("for:", i)
	}

	countdown := 3
	for countdown > 0 { // a while loop
		fmt.Println("while:", countdown)
		countdown--
	}

	total := 0
	for { // an infinite loop, left with break
		total += 10
		if total >= 30 {
			break
		}
	}
	fmt.Println("loop result:", total)

	for index, letter := range "Go" {
		fmt.Println(index, string(letter))
	}
}
Get a Run button for this example Result of running the code
for: 1
for: 2
for: 3
while: 3
while: 2
while: 1
loop result: 30
0 G
1 o

Practice

Open the example in the online compiler, change a value or add a line, and predict the output before you run it. Then break the code on purpose and read the compiler's message.

Finished this lesson?

Mark it as learned to track your progress.

Next: Prime Numbers →

Practice with a challenge

Use what this lesson covers to solve a real problem. Each challenge runs in your browser with instant tests and an AI review.

All challenges