12/08/2018, 16:27

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

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 ...

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

0