Rate this post

Switch statement là một cấu trúc điều khiển mạnh mẽ trong Swift, cho phép bạn thực hiện các hành động khác nhau dựa trên giá trị của một biểu thức. Khác với nhiều ngôn ngữ lập trình khác, switch statement trong Swift rất linh hoạt và mạnh mẽ, hỗ trợ kiểm tra nhiều điều kiện khác nhau. Bài viết này sẽ hướng dẫn chi tiết cách sử dụng switch statement trong Swift, từ cơ bản đến nâng cao, với các ví dụ minh họa cụ thể.

Switch Statement Cơ Bản

Cú pháp của switch statement trong Swift như sau:

switch value {
case pattern1:
    // Thực hiện hành động khi giá trị khớp với pattern1
case pattern2:
    // Thực hiện hành động khi giá trị khớp với pattern2
default:
    // Thực hiện hành động khi không có pattern nào khớp
}

Ví Dụ Cơ Bản

let weather = "sunny"

switch weather {
case "rainy":
    print("Hãy mang theo ô.")
case "sunny":
    print("Hãy mang theo kính râm.")
default:
    print("Hãy kiểm tra thời tiết.")
}

Trong ví dụ này, nếu giá trị của weather"sunny", chương trình sẽ in ra “Hãy mang theo kính râm.”

Kiểm Tra Nhiều Giá Trị

Swift cho phép bạn kiểm tra nhiều giá trị trong một case bằng cách sử dụng dấu phẩy (,).

Ví Dụ Kiểm Tra Nhiều Giá Trị

let character = "a"

switch character {
case "a", "e", "i", "o", "u":
    print("\(character) là một nguyên âm.")
default:
    print("\(character) không phải là một nguyên âm.")
}

Trong ví dụ này, nếu giá trị của character là một trong các nguyên âm, chương trình sẽ in ra thông báo tương ứng.

Sử Dụng Range Trong Switch

Swift hỗ trợ kiểm tra các khoảng giá trị (range) trong switch statement.

Ví Dụ Sử Dụng Range

let score = 85

switch score {
case 0..<50:
    print("Học lực yếu")
case 50..<75:
    print("Học lực trung bình")
case 75..<90:
    print("Học lực khá")
case 90...100:
    print("Học lực giỏi")
default:
    print("Điểm không hợp lệ")
}

Trong ví dụ này, chương trình sẽ in ra “Học lực khá” nếu score nằm trong khoảng từ 75 đến 89.

Kiểm Tra Giá Trị Tuple

Switch statement trong Swift có thể kiểm tra các giá trị tuple, cho phép bạn xử lý các cặp giá trị hoặc nhiều giá trị cùng lúc.

Ví Dụ Kiểm Tra Tuple

let coordinates = (x: 0, y: 1)

switch coordinates {
case (0, 0):
    print("Điểm nằm ở gốc tọa độ")
case (_, 0):
    print("Điểm nằm trên trục x")
case (0, _):
    print("Điểm nằm trên trục y")
case (-2...2, -2...2):
    print("Điểm nằm trong phạm vi hình vuông có cạnh 4 đơn vị")
default:
    print("Điểm nằm ngoài phạm vi đã định")
}

Trong ví dụ này, nếu coordinates là (0, 1), chương trình sẽ in ra “Điểm nằm trên trục y.”

Sử Dụng where Trong Switch

Bạn có thể sử dụng từ khóa where để thêm điều kiện vào các case trong switch statement.

Ví Dụ Sử Dụng where

let point = (x: 3, y: 2)

switch point {
case let (x, y) where x == y:
    print("Điểm nằm trên đường chéo chính")
case let (x, y) where x == -y:
    print("Điểm nằm trên đường chéo phụ")
case let (x, y):
    print("Điểm nằm tại (\(x), \(y))")
}

Trong ví dụ này, nếu point là (3, 2), chương trình sẽ in ra “Điểm nằm tại (3, 2)”.

Sử Dụng Switch Với Enum

Switch statement rất hiệu quả khi làm việc với enum trong Swift, giúp bạn kiểm tra các trường hợp khác nhau của enum.

Ví Dụ Sử Dụng Switch Với Enum

enum Direction {
    case north
    case south
    case east
    case west
}

let direction = Direction.north

switch direction {
case .north:
    print("Đi về hướng bắc")
case .south:
    print("Đi về hướng nam")
case .east:
    print("Đi về hướng đông")
case .west:
    print("Đi về hướng tây")
}

Trong ví dụ này, nếu direction.north, chương trình sẽ in ra “Đi về hướng bắc”.

Tính Năng Nâng Cao

Kiểm Tra Từng Phần Của Giá Trị Tuple

Bạn có thể sử dụng switch statement để kiểm tra từng phần của giá trị tuple.

Ví Dụ Kiểm Tra Từng Phần Của Tuple

let anotherPoint = (2, 0)

switch anotherPoint {
case (let distance, 0), (0, let distance):
    print("Điểm nằm cách gốc tọa độ \(distance) đơn vị")
default:
    print("Điểm nằm tại \(anotherPoint.0), \(anotherPoint.1)")
}

Trong ví dụ này, nếu anotherPoint là (2, 0), chương trình sẽ in ra “Điểm nằm cách gốc tọa độ 2 đơn vị.”

Sử Dụng Fallthrough

Swift không hỗ trợ fallthrough theo mặc định, nhưng bạn có thể sử dụng từ khóa fallthrough nếu cần.

Ví Dụ Sử Dụng Fallthrough

let integerToDescribe = 5
var description = "The number \(integerToDescribe) is"

switch integerToDescribe {
case 2, 3, 5, 7, 11, 13, 17, 19:
    description += " a prime number, and also"
    fallthrough
default:
    description += " an integer."
}

print(description)
// Output: The number 5 is a prime number, and also an integer.

Trong ví dụ này, nếu integerToDescribe là 5, chương trình sẽ in ra “The number 5 is a prime number, and also an integer.”

Kết Luận

Switch statement là một công cụ mạnh mẽ và linh hoạt trong Swift, giúp bạn kiểm tra và xử lý các giá trị khác nhau một cách hiệu quả. Bằng cách hiểu và sử dụng đúng switch statement, bạn có thể viết mã nguồn rõ ràng, dễ bảo trì và mạnh mẽ hơn. Hãy thử áp dụng các kỹ thuật và kiến thức về switch statement trong các dự án Swift của bạn để tận dụng tối đa lợi ích mà nó mang lại.

Tham Khảo

  1. Swift Documentation
  2. Apple Developer Documentation
  3. Ray Wenderlich’s Swift Tutorials
  4. Hacking with Swift

Hy vọng bài viết này sẽ giúp bạn hiểu rõ hơn về cách sử dụng switch statement trong Swift và áp dụng chúng một cách hiệu quả trong lập trình.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now