BẮT ĐẦU
KIỂU DỮ LIỆU
TOÁN TỬ
NÂNG CAO
INTERVIEW
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Câu lệnh điều kiện trong Ruby

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.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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.

Chúng ta có thể đặt các condition ở trong () hoặc không cần () đều được. Trong Ruby thì việc yêu cầu các dấu ngoặc đơn này là không cần thiết.

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.

Cùng chuyên mục:

Block trong Ruby

Block trong Ruby

Block là một khối lệnh được đặt trong ...

Iterator trong Ruby

Iterator trong Ruby

Ở bài trước mình có nói với các bạn về việc sử dụng các vòng…

Vòng lặp trong Ruby: Vòng lặp for / while / until / loop

Vòng lặp trong Ruby: Vòng lặp for / while / until / loop

Khi học một ngôn ngữ lập trình thì không thể không tìm hiểu tới một…

Các toán tử trong Ruby

Các toán tử trong Ruby

Nói đến toán tử thì dù bạn học ngôn ngữ nào đi nữa thì việc…

Cách sử dụng Ranges trong Ruby

Cách sử dụng Ranges trong Ruby

Ví dụ bạn cần tạo ra một dãy từ 1 đến 100 thì có thể…

Cách sử dụng Array trong Ruby

Cách sử dụng Array trong Ruby

Đây cũng là một trong những kiểu dữ liệu phổ biến nhất, vì vậy bạn…

Kiểu dữ liệu Symbol trong Ruby

Kiểu dữ liệu Symbol trong Ruby

Symbol giống như một String thế nhưng Symbol là một chuỗi bất biến nghĩa là…

Kiểu dữ liệu Text trong Ruby (còn gọi là chuỗi / string)

Kiểu dữ liệu Text trong Ruby (còn gọi là chuỗi / string)

Kiểu dữ liệu Boolean trong Ruby: True, False và Nil

Kiểu dữ liệu Boolean trong Ruby: True, False và Nil

Boolean là kiểu dữ liệu rất quan trọng, nó được dùng rất nhiều trong những…

Kiểu dữ liệu Hashes trong Ruby: Hiểu từ đơn giản đến phức tạp

Kiểu dữ liệu Hashes trong Ruby: Hiểu từ đơn giản đến phức tạp

Nếu bạn đã từng làm việc với một vài ngôn ngữ khác trước khi mà…

Hiểu về Method Missing trong Ruby

Hiểu về Method Missing trong Ruby

Chắc hẳn với các lập trình viên chúng ta ai cũng có thể đôi lần…

Kiểu dữ liệu Number trong Ruby (Kiểu số Integer, Float, ...)

Kiểu dữ liệu Number trong Ruby (Kiểu số Integer, Float, ...)

Trước tiên, chúng ta cùng nhìn qua một bức ảnh tổng quát phân cấp các…

Ruby là gì? Ai đã sáng tạo ra ngôn ngữ viêm kim cương này?

Ruby là gì? Ai đã sáng tạo ra ngôn ngữ viêm kim cương này?

Từ những năm 2008, thời mà mình còn học đại học thì Ruby là ngôn…

Các loại biến và cách sử dụng Module trong Ruby

Các loại biến và cách sử dụng Module trong Ruby

Bất kì một ngôn ngữ lập trình nào đều có khái niệm biến và ruby…

Cách tạo Method - Class và Object trong Ruby

Cách tạo Method - Class và Object trong Ruby

Trong bài này mình sẽ hướng dẫn các bạn cách tạo hàm, gọi hàm. Cách…

Cú pháp trong Ruby - Chạy Hello World

Cú pháp trong Ruby - Chạy Hello World

Tổng quan về cú pháp trong ruby. Hướng dẫn tạo file và chạy hello world…

Hướng dẫn cài đặt Ruby trên Window, Linux và MacOS

Hướng dẫn cài đặt Ruby trên Window, Linux và MacOS

Hướng dẫn chi tiết cách thiết lập môi trường lập trình Ruby trên hệ điều…

Top