Câu Lệnh Điều Khiển

Cấu lệnh điều khiển được sử dụng để điều khiển luồng chạy của chương trình. Ngôn ngữ lập trình Ruby cung cấp cho chúng ta các câu lệnh điều khiển phổ biến sau đây:

Câu Lệnh if

Câu lệnh if được sử dụng để kiểm soát việc thực thi của một (hoặc một số) câu lệnh dựa trên tính đúng của biếu thức điều kiện:

a = 20
if a > 10
    puts "a lớn hơn 10"
end

Chạy

Ở ví dụ trên khi biểu thức điều kiện a > 10 trả về giá trị true thì câu lệnh puts "a lớn hơn 10" đặt bên trong mệnh đề if sẽ được thực thi.

Câu lệnh trên còn có thể được viết chỉ trong một dòng sử dụng từ khoá then:

a = 20
if a > 10 then puts "a lớn hơn 10" end

Chạy

Câu Lệnh if...else

Với câu lệnh if..else nếu như biểu thức điều kiện trả về giá trị true thì các câu lệnh nằm trong mệnh đề if sẽ được thực thi ngược lại các câu lệnh bên trong mệnh đề else sẽ được thực thi:

a = 5
if a > 10
    puts "a lớn hơn 10"
else
   puts "a nhỏ hơn 10"
end

Chạy

Câu Lệnh if...elsif...else

Sử dụng if...elsif..else nếu có nhiều biểu thức điều kiện cần được kiểm tra.

a = 5
if a > 0
    puts "a là số dương"
elsif a < 0
    puts "a là số âm"
else
    puts "a bằng 0"
end

Chạy

Câu Lệnh unless

Câu lệnh điều khiển unless cũng được sử dụng tương đối phổ biến trong Ruby. Với câu lệnh này thì câu lệnh đặt trước biểu thức điều kiện unless luôn được thực thi trừ khi biểu thức này trả về giá trị true:

a =  1
unless a == 0
    print "a khác 0"
end

Chạy

Ví dụ trên câu lệnh print "$a khác 0" sẽ luôn được thực thi trừ khi $a == 0

Ví dụ trên cũng có thể được viết theo cách tương đương như sau (lưu ý từ khoá end đã được bỏ đi):

a = 1
print "a khác 0" unless a == 0

Chạy

Câu Lệnh case

Câu lệnh case trong Ruby tương tự như câu lệnh SWITCH trong các ngôn ngữ khác:

site =  "Facebook"
case site
when "Google"
    puts "Trang tìm kiếm"
when "Facebook"
    puts "Trang mạng xã hội"
when "Youtube"
    puts "Trang chia sẻ video clip"
when "SlideShare"
    puts "Trang chia sẻ slide"
else
    puts "Website khác"
end

Chạy

Ở ví dụ trên Ruby sẽ so sánh giá trị của biến site so với các giá trị trong mệnh đề when, nếu hai giá trị này là như nhau thì câu lệnh (hoặc khối lệnh) đặt trong when sẽ được thực thi.

Ruby
Thêm Bình Luận: