Câu lệnh if trong ruby
Cú pháp lệnh như sau:
if condition # các lệnh sẽ thực hiện nếu condition là true end
Ví dụ:
a = 4 b = 2 if a > b puts "#{a} lớn hơn #{b}" end
Chú ý là cần có từ khóa end
để kết thúc khối lệnh if, condition là điều kiện logic có
thể là một biểu thức phức tạp, các khối lệnh if cũng có thể lồng nhau.
a = 10 if a > 1 puts "a lớn hơn 1" if a < 20 puts "a cũng nhỏ hơn 20" end end
Câu lệnh if ... else, elseif trong ruby
Cú pháp lệnh như sau:
if condition # các lệnh sẽ thực hiện nếu condition là true else # các lệnh sẽ thực hiện nếu condition là false end
Ví dụ:
a = 1 b = 2 if a > b puts "#{a} lớn hơn #{b}" else puts "#{a} nhỏ hơn #{b}" end # 1 nhỏ hơn 2
Lệnh elseif
là viết ngắn gọn của else if
, bạn có thể viết một loạt lệnh if nối nhau:
if điều_kiện_1 # Khối lệnh cho điều_kiện_1 elseif điều_kiện_2 # Khối lệnh cho điều_kiện_2 # ... elseif điều_kiện_n # Khối lệnh cho điều_kiện_n # ... else # Khối lệnh khi tất cả các điều kiện trên đều sai end
Ví dụ:
num = 8 if num == 3 puts "Number is 3" elsif num == 10 puts "Number is 10" elsif num == 7 puts "Number is 7" else puts "Not found" end
Câu lệnh unless
Câu lệnh unless
ngược với câu lệnh if
. Thực hiện khối lệnh
nếu điều kiện logic kiểm tra là false
a = 42 unless a < 10 puts "Yes" else puts "No" end # outputs "Yes"
Câu lệnh if
và unless
cũng được sử dụng làm điều kiện thi hành một tác vụ
nào đó.
a = 100 puts "a chia hết cho 2" if a % 2 == 0 puts "a không chia hết cho 2" unless a % 2 == 0
Câu lệnh case with
Đây là câu lệnh rẽ nhiều nhánh, thay thế if elseif else
.
Nó gồm biểu thức viết sau case
, biểu thức này bằng giá trị nào
trong nhánh with
thì thi hành các lệnh trong nhánh đó
dow = 2 case dow when 0 puts "Chủ nhật" when 1 puts "Thứ Hai" when 2 puts "Thứ Ba" end # In ra "Thứ Ba"
Cũng có thể kiểm tra nhiều giá trị cho một nhánh, các giá trị cách nhau bởi ,
sau with
dow = 3 case dow when 0,7 puts "Ngày nghỉ" when 1,2,3,4,6 puts "Ngày làm việc" end # Ngày làm việc
Trong case
cũng có thể đưa vào cuối khối else
khi tất cả các nhánh
with đều không phù hợp
dow = 5 case dow when 0,7 puts "Ngày nghỉ" when 1 puts "Học PHP" when 2,3 puts "Học Ruby" else puts "Học Linux" end # Học Linux
Dải dữ liệu
Một dải dữ liệu biểu diễn một tập có thứ tự như dải số từ 0 đến 10, từ 100 đến 200, dải chữ từ a đến z.
Trong Ruby có toán tử đặc biệt là ..
và ...
để tạo ra dải dữ liệu.
Toán tử ..
tạo dải gồm cả điểm mút bên phải, trong khi ...
thì
dài không gồm điểm mút phải (giá trị lớn).
a = 1..3 # gồm các giá trị 1, 2, 3 b = 1...3 # gồm các giá trị 1, 2
Phương thức to_a
để chuyển một dải thành mảng, tiện dụng khi cần in ra
c = ("a".."d").to_a puts c # [a, b, c, d]
Bạn có thể áp dụng dải dữ liệu trong biểu thức with
của lệnh case
age = 42 case age when 0..14 puts "Child" when 15..24 puts "Youth" when 25..64 puts "Adult" else puts "Senior" end