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 ifunless 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à ..... để 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).

Ví dụ:
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

Đăng ký nhận bài viết mới