Vòng lặp trong ruby
Bài đăng này đã không được cập nhật trong 4 năm
Trong một dự án thực tế chắc chắn không thể thiếu đi việc sử dụng vòng lặp (loop). Một vòng lặp là sự thực hiện lặp đi lặp lại của một đoạn mã với một số lần nhất định hoặc cho đến khi một điều kiện nhất đinh được đáp ứng . Ở bài viết này chúng ta sẽ cùng nhau tìm hiểu về các vòng lặp trong ngôn ngữ lập trình Ruby
Vòng lặp đơn giản trong Ruby
Một trong những cách đơn giản nhất để tạo ra một vòng lặp trong Ruby là sử dụng từ khóa loop
. loop
là một khối lệnh được biểu hiện bằng {...}
hoặc do...end
. Một loop
sẽ thực hiện các mã lệnh trong khối lệnh đó cho đến khi chúng ta sử dụng thao tác ctrl+c
hoặc chèn thêm từ khóa break
.
Bây giờ chúng ta hãy thử tạo một vòng lặp với từ khóa loop
bằng cách tạo tệp tin loop_example.rb
:
loop do
puts "Đây là vòng lặp"
end
Để có thể chạy ví dụ này chúng ta sử dụng terminal trên hệ điều hành ubuntu chạy lệnh ruby loop_example.rb
.
Kiểm soát vòng lặp
Nếu bạn chạy với ví dụ ở trên thì vòng lặp của bạn sẽ là vô hạn và khó kiểm soát. Để có thể kiểm soát được vòng lặp trong ruby
chúng ta có thể sử dụng từ khóa break
. Ngay bây giờ mình sẽ lấy ví dụ về việc sử dụng vòng lặp có kiểm soát:
i = 0
loop do
i += 1
puts i
if i == 5
break
end
end
Và đây là kết quả khi chạy ví dụ trên
$ ruby loop_example.rb
1
2
3
4
5
Ở trên bạn có thể thấy là từ khóa break
đã không được sử dụng ở 4 lần lặp đầu tiên. Nhưng đến lần lặp thứ 5 khi mà điều kiện if i == 5
trả về true
và bên trong if
được thực thi câu lệnh break
và thực hiện thoát khỏi vòng lặp.
Vòng lặp while
Vòng lặp while
đưa ra một tham số đánh giá là một boolean
(true
hoặc false
). Khi biểu thức boolean
trả về false
thì vòng lặp while
sẽ không được thực thi nữa và chương trình sẽ tiếp tục sau vòng lặp. Vòng lặp while
có cú pháp như sau:
while biểu_thức_điều_kiện [do]
mã_lệnh
end
Ví dụ về cách sử dụng vòng lặp while
:
counter = 0
while counter < 5 do
puts "Giá trị của biến counter là: #counter"
$i +=1 # tăng giá trị của counter 1 đơn vị
end
Vòng lặp for
Trong Ruby
, vòng lặp for
được sử dụng để lặp đi lặp lại một tập hợp các phần tử. Vòng lặp for
trong ruby
có cú pháp hơi khác so với các ngôn ngữ khác.
Sau đây là ví dụ về việc sử dụng vòng lặp for
:
for i in 0..5
puts "Giá trị của biến i là: #{i}"
end
Ở ví dụ trên chúng ta sử dụng vòng for để lặp biến i trong phạm vi 0 tới 5 sử dụng kiểu dữ liệu range
0..5 và in ra giá trị của biến này. Bạn sẽ được tìm hiểu về range trong các bài học sau.
Vòng lặp until
Cú pháp của vòng lặp until
until biểu_thức_điều_kiện [do]
mã_lệnh
end
Trong đó mã lệnh được thực thi sau khi biểu thức điều kiện trả vể true
Trong ví dụ sau giá trị của biến counter
sẽ được hiển thị ra màn hình cho tới khi nào biểu thức counter > 5
trả về giá trị đúng:
counter = 0
until counter > 5 do
puts("Giá trị của biến counter là #{counter += 1}" )
end
Vòng lặp each và Blocks
Mặc dù ở trong các ngôn ngữ khác vòng lặp for
được sử dụng rất phổ biến nhưng trong Ruby each
lại được sử dụng phổ biến hơn. Sau đây là ví dụ về sử dụng each
:
(1..5).each do |counter|
puts "Giá trị của counter: #{counter}"
end
Ví dụ trên sử dụng phương thức each
có trong kiểu dữ liệu phạm vi 1..5
. Phương thức này sẽ lặp qua từng đơn vị trong phạm vi và gán giá trị lặp này cho biến counter
sau đó in ra màn hình giá trị này.
Vòng lặp each còn có thể được viết sử dụng cú pháp đơn giản như sau:
(1..5).each {|counter| puts "iteration #{counter}"}
Ví dụ trên sửa dụng block
(phần bắt đầu từ dấu ngoặc mở{
cho tới dấu ngoặc đóng }
) để thay thế cho cặp từ khoá do...end
.
Trên đây mình đã giới thiệu về các vòng lặp trong Ruby. Rất cảm ơn các bạn đã theo dõi. Chúc các bạn học tập tốt. Bài viết này có tham khảo một số tài liệu tại: https://launchschool.com/books/ruby/read/loops_iterators#controllloop https://www.codehub.com.vn/Ruby-Co-Ban/Vong-Lap
All rights reserved