bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/Go/Go Tutorial
Go•Go Tutorial

Go switch Statement

Flash cards

Review the key moves

1/4
Core idea

What is the main idea behind Go switch Statement?

Lesson checks

Practice each idea before moving on

Short Mimo-style checks built from this lesson's code, terms, and sequence.

1Quick choice

Which statement best captures the main point of this lesson?

2Fill blank

Complete the missing token from the example code.

___ {
3Order

Put the learning moves in the order that makes the concept easiest to apply.

Single-Case switch Example
Single-Case switch Syntax
The switch Statement

The switch Statement

Use the switch statement to select one of many code blocks to be executed.

The switch statement in Go is similar to the ones in C, C++, Java, JavaScript, and PHP. The difference is that it only runs the matched case so it does not need a break statement.

Single-Case switch Syntax

Syntax

switch
expression {
 case
 x
 // code block
 case
 y
 // code block
 case
 z
 ...
 default:
 // code block
}

This is how it works

  • The expression is evaluated once
  • The value of the switch expression is compared with the values of each case
  • If there is a match, the associated block of code is executed
  • The default keyword is optional. It specifies some code to run if there is no case match

Single-Case switch Example

The example below uses a weekday number to calculate the weekday name:

Example

package main
import ("fmt")
func main() {
  day := 4
  switch day {
    case 1: fmt.Println("Monday")
    case 2: fmt.Println("Tuesday")
    case 3: fmt.Println("Wednesday")
    case 4: fmt.Println("Thursday")
    case 5: fmt.Println("Friday")
    case 6: fmt.Println("Saturday")
    case 7: fmt.Println("Sunday")
  }
}

The default Keyword

The default keyword specifies some code to run if there is no case match:

Example

package main
import ("fmt")
func main() {
  day := 8
  switch day {
    case 1: fmt.Println("Monday")
    case 2: fmt.Println("Tuesday")
    case 3: fmt.Println("Wednesday")
    case 4: fmt.Println("Thursday")
    case 5: fmt.Println("Friday")
    case 6: fmt.Println("Saturday")
    case 7: fmt.Println("Sunday")
    default: fmt.Println("Not a weekday")
  }
}

All the case values should have the same type as the switch expression. Otherwise, the compiler will raise an error:

Example

package main
import ("fmt")
func main() {
  a := 3
  switch a {
    case 1: fmt.Println("a is one")
    case "b": fmt.Println("a is b")
  }
}

Previous

Go Nested if Statement

Next

Go Multi-case switch Statement