Go Practice Exercises

FizzBuzz in Go

The classic interview warm-up, solved with a switch.

  • Beginner
  • 3 min read
  • 1 runnable example
What you'll learn
  • switch without a value
  • Order of the cases
  • strings.Join
1 to 6
11
22
Fizz3
44
Buzz5
Fizz6

Check 15 first

Print the numbers from 1 to 15, but print Fizz for multiples of 3, Buzz for multiples of 5 and FizzBuzz for multiples of both.

A switch without a value runs the first case that is true, so the check for 15 must come first. strconv.Itoa turns a number into a string, and strings.Join puts the words on one line.

Key points

  1. The first true case runs.
  2. n%15 must come before n%3 and n%5.
  3. strconv.Itoa turns a number into text.

Runnable Go example

Go
Run code →
main.go
package main

import (
	"fmt"
	"strconv"
	"strings"
)

func fizzbuzz(n int) string {
	switch {
	case n%15 == 0:
		return "FizzBuzz"
	case n%3 == 0:
		return "Fizz"
	case n%5 == 0:
		return "Buzz"
	default:
		return strconv.Itoa(n)
	}
}

func main() {
	words := make([]string, 0, 15)
	for n := 1; n <= 15; n++ {
		words = append(words, fizzbuzz(n))
	}
	fmt.Println(strings.Join(words, " "))
}
Get a Run button for this example Result of running the code
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz

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: Loops with for →

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