Swift Academy · Lesson

Matching Ranges and Tuples

Switch on numeric ranges and tuple shapes.

Lesson 2 of 413 steps

Matching Ranges and Tuples is a free Swift Academy lesson on CoddyKit. This is lesson 2 of 4. Any 3 lessons of this learning path are free to read in full — after that, CoddyKit PRO unlocks every lesson, plus hands-on practice with a built-in code editor and a 24/7 AI tutor. It is part of the Swift Academy learning path, and your progress syncs across the web and the CoddyKit app. The Swift Academy course includes 4 lessons in total.

Matching a Range

A case can match a whole range of values using range operators like 1...5. If the value falls in the range, the case runs.

let score = 85
switch score {
case 0..<50:
    print("Fail")
case 50...100:
    print("Pass")
default:
    print("Invalid")
}

Closed vs Half-Open

Use closed ranges (...) to include the upper bound and half-open ranges (..<) to exclude it. Pick boundaries that do not overlap.

let age = 18
switch age {
case 0..<13:
    print("Child")
case 13..<20:
    print("Teen")
default:
    print("Adult")
}

Order of Range Cases

Swift checks cases top to bottom and runs the first match, so non-overlapping ranges keep behavior predictable.

let temp = 30
switch temp {
case ..<0:
    print("Freezing")
case 0..<20:
    print("Cool")
case 20...:
    print("Warm")
default:
    print("?")
}

Switching on Tuples

You can switch on a tuple to match several values at once. Each position can be a literal, a range, or a wildcard _.

let point = (1, 1)
switch point {
case (0, 0):
    print("Origin")
case (_, 0):
    print("On x-axis")
case (0, _):
    print("On y-axis")
default:
    print("Elsewhere")
}

Wildcards in Tuples

The underscore _ matches any value in that position, letting you focus on the parts you care about.

let result = (200, "OK")
switch result {
case (200, _):
    print("Success")
case (_, "Error"):
    print("Has error")
default:
    print("Other")
}

Ranges Inside Tuples

Tuple patterns can use ranges in each position for powerful 2D matching.

let coord = (3, 8)
switch coord {
case (0...5, 0...5):
    print("Bottom-left quadrant")
case (0...5, 6...10):
    print("Top-left quadrant")
default:
    print("Far")
}

Matching Exact Tuples

You can match a fully specified tuple to detect an exact combination.

let move = ("up", 2)
switch move {
case ("up", 2):
    print("Jump twice up")
case ("down", _):
    print("Going down")
default:
    print("Other move")
}

Classifying Numbers

Range matching makes classifying a number into buckets clean and direct.

let n = -4
switch n {
case ..<0:
    print("negative")
case 0:
    print("zero")
case 1...:
    print("positive")
default:
    print("?")
}

Character Ranges

Because characters are comparable, you can even match ranges of characters.

let ch: Character = "k"
switch ch {
case "a"..."m":
    print("First half")
case "n"..."z":
    print("Second half")
default:
    print("Not a lowercase letter")
}

Combining Tuple Positions

Tuple matching evaluates all positions together; every position must match for the case to fire.

let weather = (sunny: true, temp: 25)
switch (weather.sunny, weather.temp) {
case (true, 20...):
    print("Nice and warm")
case (true, _):
    print("Sunny but cool")
default:
    print("Not sunny")
}

Why This Is Powerful

Range and tuple patterns let one switch express logic that would need many nested if statements, all in a flat, readable layout.

let (x, y) = (0, 5)
switch (x, y) {
case (0, 0): print("origin")
case (0, _): print("y-axis")
case (_, 0): print("x-axis")
default: print("plane")
}

Quick Check

Test range and tuple matching.

Recap: Matching Ranges and Tuples

Cases can match ranges like 1...5 and 0..<n, and tuple patterns let you match multiple values at once using literals, ranges, and the wildcard _.

let p = (0, 4)
switch p {
case (0, _): print("y-axis")
default: print("other")
}
Free to start

Learn Swift with an AI tutor — free

Write and run real code in your browser, get instant help from a 24/7 AI tutor, and pick up where you left off on the web or in the app.

Courses
122
Lessons
409

Frequently Asked Questions

Is the “Matching Ranges and Tuples” lesson free?

Yes — any 3 lessons of the Swift Academy learning path, including “Matching Ranges and Tuples”, are free to read in full here on the web. After that, CoddyKit PRO unlocks every lesson, plus interactive practice with a built-in code editor and a 24/7 AI tutor. The Swift Academy course includes 4 lessons in total.

What will I learn in “Matching Ranges and Tuples”?

Switch on numeric ranges and tuple shapes. You practise Swift Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Swift Academy?

No prior experience is required. Swift Academy on CoddyKit is structured for beginners through advanced learners, so you can start here or from the beginning and move at your own pace. This is lesson 2 of 4.

How long does the “Matching Ranges and Tuples” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Swift Academy lesson?

Yes. Every Swift Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Exhaustive Switch on Values
  2. Matching Ranges and Tuples
  3. Value Binding and where Clauses
  4. Compound Cases and Fallthrough
← Back to Swift Academy