06/04/2021, 14:47

Câu lệnh điều kiện trong Ruby - Ruby căn bản

Trong bài này chúng ta sẽ học các lệnh điều kiện trong Ruby, đây là những lệnh rẻ nhánh như: lệnh if else, case, unless. Qua bài học này sẽ giúp bạn có cái nền tổng quát về cách sử dụng những lệnh rẻ nhánh điều khiển chương trình thông qua các điều kiện. 1. ...

Trong bài này chúng ta sẽ học các lệnh điều kiện trong Ruby, đây là những lệnh rẻ nhánh như: lệnh if else, case, unless.

Qua bài học này sẽ giúp bạn có cái nền tổng quát về cách sử dụng những lệnh rẻ nhánh điều khiển chương trình thông qua các điều kiện.

1. Lệnh điều kiện là gì?

Trong cuộc sống nhiều lúc chúng ta cũng hay nói mấy câu mệnh đề nếu..thì rất nhiều. Giả hạn như nếu trời mưa thì đường trơn thì trong lập trình chúng ta cũng có thể thể hiện mệnh đề đó bằng code.

Chúng ta có thể hiểu đơn giản là câu lệnh điều kiện sẽ có chức năng điều khiển luồng chạy của ứng dụng chúng ta. Chả hạn như nếu chúng ta muốn thực hiện một công việc nào đó với một điều kiện cụ thể thì hãy cứ nghĩ đến việc sẽ sử dụng câu lệnh điều kiện.

Trong Ruby chúng ta sẽ tiếp xúc với những cậu lệnh điều kiện sau

  • Câu lệnh if
  • Câu lệnh if...else
  • Câu lệnh if...elseif...else
  • Câu lệnh unless
  • Câu lệnh case

Mình sẽ giới thiệu lần lượt trong bài viết này.

2. Câu lệnh if trong Ruby

Câu lệnh điều kiện if dùng để điểm tra xem một điều kiện có đúng hay không, nếu đúng thì câu lệnh bên trong if sẽ được thực hiện.

Cú pháp như thế này

if condition
  // code
end

Như cú pháp ở trên chúng ta để ý, bắt đầu câu lệnh if sẽ bắt đầu bằng từ khóa if sau đó là điều kiện, và kết thúc câu lệnh điều kiện bằng từ khóa end.

Ví dụ chúng ta muốn kiểm tra xem một số có phải là số chẵn không thì sẽ làm như sau:

a  = 8

if a.even?
  puts "Đây là số chẵn"
end

Kết quả

Đây là số chẵn

3. Câu lệnh if...else trong Ruby

Cũng giống như câu lệnh if ở phía trên, nhưng ở phần này chúng ta sẽ tiếp xúc thêm với 1 cái khác là thêm else.

Nếu như câu điều kiện trong if trả về true thì code trong đoạn if sẽ được thực hiện, ngược lại nếu câu điều kiện if trả về false thì đoạn code trong else sẽ được thực hiện.

Cú pháp như thế này

if condition
  // code if
else
  // code else
end

Khác một chỗ là chúng ta không thể viết một điều kiện nào đó trong else. VÍ dụ như thế này

else a > 5

thì chương trình sẽ lỗi ngay.

Tiếp tục với ví dụ ở phần trên

a  = 7

if a.even?
  puts "Đây là số chẵn"
else
  puts "Đây là số lẻ"
end

Kết quả

Đây là số lẻ

Trong ví dụ trên do 7 là số lẻ nên câu lệnh điều kiện a.even? trả về false, nên câu lệnh trong if không được gọi tới, ngay lập tức nó sẽ chuyển ngay xuống else để thực hiện code bên trong

4. Câu lệnh if..elsif..else trong Ruby

Kiểu câu lệnh điều kiện này giúp chúng ta có thể kiểm tra nhiều hơn một điều kiện.

Cú pháp

if condition
  // code if
elsif
  // code elsif 1
elseif
  // code elsif 2
...
else
  // code else
end

Nếu như câu lệnh if là true thì cậu lệnh bên trong if sẽ được thực hiện và thoát khỏi câu điều kiên. Còn nếu câu lệnh trong if mà false thì nó sẽ tiếp tục kiểm tra các câu điều kiện khác ở trong các elsif khác, nếu câu điều kiện trong elsif nào trả về true thì code trong elsif đó sẽ được thực hiện, và nếu tất cả các câu điều kiện trong if hay trong elsif đều trả về false thì câu lệnh trong else sẽ được thực thi.

Các bạn hãy xem qua 1 ví dụ như thế này

a = gets.chomp.to_i   

if a <50   
  puts "a nhỏ hơn 50"   
elsif a >= 50 && a <= 60   
  puts "a nằm trong khoảng 50 đến 60"   
elsif a >= 70 && a <= 80   
  puts "a nằm trong khoảng 70 đến 80"   
elsif a >= 80 && a <= 90   
  puts "a nằm trong khoảng 80 đến 90"    
elsif a >= 90 && a <= 100   
  puts "a nằm trong khoảng 90 đến 100"    
end

5. Câu lệnh unless trong Ruby

Câu điều kiện này khá phổ biến trong Ruby, được dùng rất nhiều vì sự tiện dụng của nó

Cú pháp

unless conditional 
   // code
else
   /// code 
end

Để dễ hiểu hơn mình có ví dụ như thế này

x =  1

unless x == 0
    puts "x khác 0"
end

Kết quả

x khác 0

Chúng ta có thể hiểu câu lệnh này đơn giản nhất bằng cách dịch code ra bằng lời như sau

Trừ khi x = 0 thì câu lệnh bên trong sẽ luôn được thực hiện.

6. Câu lệnh case trong Ruby

Câu lệnh case sinh ra có mục đích tương tự như câu lệnh elsif vậy. Thế nhưng nếu xét về mặt code thì câu lệnh when nhìn rõ ràng về clean hơn so với elsif.

Cú pháp như sau

case biến

when giá trị
  // code
when giá trị
  // code
...
else
  // code
end

Mình sẽ giải thích một chút.

Trước tiên thì chúng ta có một biến, được khai báo cùng với từ khóa case.

Sau đó lần lượt là đến các từ khóa như when, else, end. Sau từ khóa when là các giá trị mà chúng ta sẽ so sánh với biến được khai báo cùng với từ khóa case. Ruby sẽ lần lượt lấy biến đó so sánh với các giá trị ở trong when, nếu kết quả ở when nào trả về true thì câu lệnh trong when đó sẽ được thực hiện. Nếu không có bất cứ when nào thỏa mãn thì câu lệnh bên trong else sẽ được thực hiện. Chúng ta kết thúc câu lệnh case bằng từ khóa end.

Ví dụ

a = 5

case a
when 5
  puts "a bằng 5"
when 6
  puts "a bằng 6"
else
  puts "a khác giá trị 5 và 6"
end

Kết quả

a bằng 5

7. Toán tử ba ngôi trong Ruby

Trong Ruby có một kiểu viết câu điều kiện rút gọn lại thay cho câu điều kiện if...else

Cú pháp như sau

condition ? a : b

Nhìn cú pháp như trên mình sẽ giải thích ngắn gọn như sau. Nếu như condition trả về true thì sẽ trả về giá trị là a, còn ngược lại sẽ trả về b.

Giả sử chúng ta có 1 đoạn code như thế này viết bằng if else

a = 5

if a == 5
  puts "a bằng 5"
else
  puts "a không bằng 5"
end

thì đối với câu lệnh rút gọn chúng ta có

a = 5

puts a == 5 ? "a bằng 5" : "a không bằng 5"

Cả 2 kiểu viết trên đều cho ra cùng 1 kết quả là

a bằng 5

Có thể thấy là câu lệnh điều kiện rút gọn làm ngắn gọn code của chúng ta rất nhiều. Hãy ghi nhớ để áp dụng vì nó sẽ xuất hiện rất nhiều trong quá trình làm việc của bạn.

Ngoài ra đối với những câu lệnh chỉ có if ngắn gọn như thế này

a = 5 

if a == 5 
  puts "a bằng 5"
end

thì chúng ta có thể viết tối giản lại thành

puts "a bằng 5" if a == 5 

Cứ dịch theo ngữ nghĩa code thì trái qua phải sẽ là, in ra a bằng 5 nếu a bằng 5. Quá ngắn gọn, đây là cách viết rất phổ biến trong Ruby mà các bạn sẽ phải sử dụng nó rất nhiều.

Ngoài ra chúng ta có thể làm điều tương tự với unless.

8. Kết luận

Trong bài viết này thì mình đã giới thiệu với các bạn về các câu lệnh điều kiện trong Ruby, đây là phần rất quan trong của một ngôn ngữ lập trình, vì vậy hãy đảm bảo rằng bạn nắm được chắc những kiến thức trong bài viết này.

Tạ Quốc Bảo

23 chủ đề

7270 bài viết

0