Trong lập trình Ruby, cấu trúc điều khiển case
(hay còn gọi là switch case
trong một số ngôn ngữ lập trình khác) là một công cụ mạnh mẽ 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ến hoặc biểu thức. Cấu trúc này giúp làm giảm số lượng câu lệnh if-else
cần thiết và làm cho code của bạn trở nên gọn gàng và dễ đọc hơn
Cơ Bản về Cấu Trúc case
Cấu trúc case
trong Ruby cho phép bạn so sánh một biến với một loạt các giá trị hoặc điều kiện khác nhau. Mỗi điều kiện được xác định bởi một câu lệnh when
, và Ruby sẽ thực thi code trong khối when
đầu tiên mà giá trị của biến khớp với điều kiện
Cú pháp
Cú pháp cơ bản của cấu trúc case
trong Ruby là:
ruby
case biến
when giá_trị_1
# Code thực thi khi biến == giá_trị_1
when giá_trị_2
# Code thực thi khi biến == giá_trị_2
else
# Code thực thi khi không có giá trị nào khớp
end
Trong đó biến
là biến cần kiểm tra, giá_trị_1
, giá_trị_2
,... là các giá trị để so sánh với biến, và else
là phần code thực thi nếu không có điều kiện nào khớp
Ví dụ Đơn Giản
Giả sử bạn muốn in ra một thông báo dựa trên giá trị của biến thời_tiết
:
ruby
thời_tiết = 'nắng'
case thời_tiết
when 'mưa'
puts 'Mang ô'
when 'nắng'
puts 'Đội mũ'
else
puts 'Thời tiết bình thường'
end
Trong ví dụ này, chương trình sẽ in ra "Đội mũ" vì giá trị của biến thời_tiết
là 'nắng'[1].
Sử Dụng Nâng Cao
Sử Dụng Regex và Ranges
Ruby cho phép sử dụng regex và ranges trong các câu lệnh when
. Điều này làm cho cấu trúc case
trở nên cực kỳ linh hoạt:
ruby
tuổi = 25
case tuổi
when 0..17
puts 'Bạn còn trẻ'
when 18..64
puts 'Bạn đã trưởng thành'
else
puts 'Bạn đã nghỉ hưu'
end
Trong ví dụ này, chương trình sẽ in ra "Bạn đã trưởng thành" vì tuổi
rơi vào khoảng từ 18 đến 64
Sử Dụng Procs và Lambdas
Bạn cũng có thể sử dụng procs và lambdas trong các câu lệnh when
, điều này cho phép bạn thực hiện các kiểm tra phức tạp hơn:
ruby
số = 6
chẵn = ->(x) { x % 2 == 0 }
lẻ = ->(x) { x % 2 != 0 }
case số
when chẵn
puts 'Số chẵn'
when lẻ
puts 'Số lẻ'
end
Ở đây, chẵn
và lẻ
là các lambdas được định nghĩa để kiểm tra số chẵn và số lẻ. Chương trình sẽ in ra "Số chẵn" vì 6 là một số chẵn[7].
Kết Luận
Cấu trúc case
trong Ruby là một công cụ mạnh mẽ và linh hoạt, cho phép bạn xử lý nhiều điều kiện một cách gọn gàng và hiệu quả. Bằng cách sử dụng các tính năng như ranges, regexes, procs, và lambdas, bạn có thể xử lý các tình huống phức tạp mà không cần viết nhiều câu lệnh if-else
. Hy vọng qua bài viết này, bạn đã có thể hiểu rõ hơn về cách sử dụng cấu trúc case
trong Ruby và áp dụng nó vào các dự án của mình một cách hiệu quả.