×

Lựa chọn điều kiện với từ khóa case trong cấu trúc switch của Swift

Trong lập trình Swift, cấu trúc switch là một công cụ mạnh mẽ giúp kiểm tra các giá trị khác nhau và thực hiện các hành động tương ứng. Điều này có thể đơn giản hơn và rõ ràng hơn so với việc sử dụng nhiều câu lệnh if-else. Một trong những tính năng vượt trội của cấu trúc switch là khả năng sử dụng từ khóa case để xác định các điều kiện cụ thể cần kiểm tra.

Cấu trúc cơ bản của switch

Phần cơ bản nhất của switch trong Swift bao gồm kiểm tra một biến hoặc biểu thức và so sánh nó với các giá trị khác nhau được xác định bởi từ khóa case. Dưới đây là một ví dụ đơn giản:

let fruit = "Apple"

switch fruit {
case "Apple":
    print("This is an apple.")
case "Banana":
    print("This is a banana.")
default:
    print("Unknown fruit.")
}

Điều kiện với từ khóa case

Một tính năng mạnh mẽ của switch trong Swift là khả năng mở rộng điều kiện kiểm tra thông qua việc sử dụng các toán tử logic, các biểu thức giá trị, và thậm chí là khoảng số.

Sử dụng các biểu thức giá trị

Bạn có thể sử dụng biểu thức số học và chuỗi trong các trường hợp case:

let number = 5

switch number {
case 0:
    print("Number is zero.")
case 1...10:
    print("Number is between 1 and 10.")
default:
    print("Number is out of range.")
}

Trong ví dụ này, case 1...10 sẽ bao gồm tất cả các số từ 1 đến 10.

Sử dụng điều kiện với where

Bạn có thể sử dụng từ khóa where để thêm các điều kiện cụ thể vào từng trường hợp:

let age = 25

switch age {
case let x where x < 18:
    print("Underage.")
case let x where x >= 18 && x < 30:
    print("Young adult.")
default:
    print("Adult.")
}

Sử dụng nhiều trường hợp trong một case

Swift cũng cho phép bạn nhóm nhiều giá trị lại với nhau trong một case, cách này giúp giảm sự tường minh cho đoạn mã của bạn:

let grade = "B"

switch grade {
case "A", "B", "C":
    print("Passing grade.")
case "D", "F":
    print("Failing grade.")
default:
    print("Grade not recognized.")
}

Kết hợp giữa case và các kiểu dữ liệu

Cấu trúc switch trong Swift còn linh hoạt đến mức cho phép bạn làm việc với các kiểu dữ liệu khác nhau như tupless và enums.

Tuples

Với tupless, bạn có thể dễ dàng kết hợp nhiều giá trị với nhau trong một điều kiện case:

let coordinates = (2, 3)

switch coordinates {
case (0, 0):
    print("Origin point.")
case (let x, 0):
    print("On x-axis at \(x).")
case (0, let y):
    print("On y-axis at \(y).")
case let (x, y):
    print("Point at (\(x), \(y)).")
}

Enums

Sử dụng enums làm giá trị kiểm tra giúp mã nguồn của bạn dễ hiểu và cấu trúc hơn:

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

let direction = Direction.north

switch direction {
case .north:
    print("Going north.")
case .south:
    print("Going south.")
case .east:
    print("Going east.")
case .west:
    print("Going west.")
}

Kết luận

Cấu trúc switch trong Swift mạnh mẽ và linh hoạt nhờ phần nâng cao của từ khóa case. Bạn có thể dễ dàng tổ chức điều kiện kiểm tra phức tạp mà vẫn duy trì tính rõ ràng và dễ đọc cho mã nguồn của mình, đồng thời tận dụng khả năng hỗ trợ nhiều loại dữ liệu khác nhau. Bằng cách này, bạn có thể giảm thiểu lỗi và tăng hiệu quả thực thi chương trình.

Comments