Ruby – Câu Lệnh Điều Khiển
Bài đăng này đã không được cập nhật trong 7 năm
Các câu lệnh điều khiển chịu trách nhiệm điều khiển luồng chương trình chạy trong Ruby. Các câu lệnh điều khiển bao gồm 2 loại câu lệnh cơ bản là câu lệnh điều kiện và vòng lặp. Câu lệnh điều kiện là các câu lệnh có tác dụng thực hiện các câu lệnh khác nhau tùy theo từng điều kiện khác nhau. Vòng lặp là khối lệnh có tác dụng thực hiện các câu lệnh lặp đi lặp lại nhiều lần. Khi một chương trình chạy thì các câu lệnh sẽ được thực hiện tuần tự từ trên xuống dưới.
Câu lệnh điều kiện if
Từ khóa if được dùng để kiểm tra xem một biểu thức có đúng hay không. Nếu đúng thì thực thi một câu lệnh hoặc một khối lệnh, một khối lệnh phải được đặt trước từ khóa end.
puts "Enter a number: "
num = gets.to_i
if num > 0 then
puts "num variable is positive"
puts "num variable equals to #{num}"
end
Phương thức gets.to_i sẽ đọc một chuỗi được nhập từ bàn phím và chuyển thành số nguyên rồi gán vào biến num, sau đó câu lệnh if kiểm tra xem nếu biến num lớn hơn 0 thì in các chuỗi text ra màn hình.
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:
age = 17
if age > 18
puts "Adult"
else
puts "Not Adult"
end
Trong ví dụ trên chúng ta có biến age là 17, câu lệnh if kiểm tra xem nếu biến age > 18 thì in ra chuỗi “Adult”, ngược lại thì in ra chuỗi "Not Adult".
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.
print "Enter a number: "
num = gets.to_i
if num < 0
puts "#{num} is negative"
elsif num == 0
puts "#{num} is zero"
elsif num > 0
puts "#{num} is positive"
end
Trong ví dụ trên chúng ta cho nhận một số được nhập từ bàn phím và in ra chuỗi string tương ứng với từng trường hợp số đó bé hơn 0, bằng 0 hoặc lớn hớn 0.
Câu lệnh điều kiện case
Câu lệnh case có tác dụng lựa chọn các câu lệnh để thực thi dựa vào điều kiện đặt ra, do đó câu lệnh case cũng có tác dụng tương tự như câu lệnh if..elseif vậy. Cú pháp:
case <biến>
when <giá trị>
else
end
Bên trong khối lệnh case..end là các từ khóa when và else, theo sau các từ khóa when là các giá trị, Khi chạy, Ruby sẽ so sánh biến theo sau từ khóa case với từng giá trị ở từng từ khóa when, nếu trùng tại đâu thì chạy câu lệnh phía sau từ khóa when đó, nếu không có từ khóa when nào khớp thì chạy câu lệnh mặc định sau từ khóa else.
print "Enter a domain: "
domain = gets.chomp
case domain
when "us"
puts "United States"
when "de"
puts "Germany"
when "no"
puts "Norway"
when "hu"
puts "Hungary"
else
puts "Unknown"
end
Trong đoạn code trên chúng ta nhận một chuỗi được nhập từ bàn phím và gán vào biến domain, sau đó kiểm tra với từng giá trị trong câu lệnh case, nếu domain trùng với giá trị nào thì in một chuỗi string ra màn hình tương ứng với gái trị đó, nếu không trùng với giá trị nào thì in chuỗi “Unknown”.
Câu lệnh điều kiện 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
Ví dụ trên câu lệnh print "a khác 0" sẽ luôn được thực thi trừ khi a == 0
All rights reserved