Skip to main content

Overview

Switch statements provide a clean way to handle multiple conditions based on the value of an expression. They are particularly useful when you need to compare a single value against multiple possible matches.

Basic Syntax

Each case must end with break, continue, return, or throw. Otherwise, execution will fall through to the next case.

String Matching Example

Switch statements work well with strings:

Integer Matching Example

Switch statements can also match integer values:

Pattern Matching (Dart 3.0+)

Dart 3.0 introduced enhanced pattern matching in switch statements, allowing for more complex conditions.

Complete Example

When to Use Switch vs If-Else

1

Use switch for discrete values

Switch statements are ideal when checking a single variable against multiple specific values.
2

Use if-else for ranges

If-else statements are better for complex conditions or range checks (though Dart 3.0+ supports patterns in switch).
3

Consider readability

Choose the option that makes your code most readable for the specific use case.

Important Notes

Every case in a switch statement must have a terminating statement (break, continue, return, or throw). Empty cases can fall through to the next case.

Supported Types

Switch statements in Dart work with:
  • Integers
  • Strings
  • Enums
  • Compile-time constants
  • Objects (with proper equality implementation)

Default Case

The default case is optional but recommended. It handles any value that doesn’t match the specified cases: