Ruby - Vòng lặp
Các vòng lặp trong Ruby được sử dụng để thực thi cùng một khối mã với một số lần xác định. Chương này trình bày chi tiết tất cả các câu lệnh lặp được Ruby hỗ trợ.
Câu lệnh Ruby while
Cú pháp
while conditional [do]
code
end
Thực thi mã trong khi điều kiện là đúng. Một khi vòng lặp của điều kiện được tách ra từ đang bởi từ dành riêng làm, một dòng mới, dấu chéo ngược \, hoặc một dấu chấm phẩy;.
Thí dụ
#!/usr/bin/ruby
$i = 0
$num = 5
while $i < $num do
puts("Inside the loop i = #$i" )
$i +=1
end
Điều này sẽ tạo ra kết quả sau:
Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Công cụ sửa đổi Ruby while
Cú pháp
code while condition
OR
begin
code
end while conditional
Thực thi mã trong khi điều kiện là đúng.
Nếu một sửa đổi while theo sau câu lệnh bắt đầu không có mệnh đề cứu hoặc đảm bảo, mã được thực thi một lần trước khi điều kiện được đánh giá.
Thí dụ
#!/usr/bin/ruby
$i = 0
$num = 5
begin
puts("Inside the loop i = #$i" )
$i +=1
end while $i < $num
Điều này sẽ tạo ra kết quả sau:
Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Ruby cho đến khi Tuyên bố
until conditional [do]
code
end
Thực thi mã trong khi điều kiện là sai. Một cho đến khi có điều kiện tuyên bố được tách biệt đang được từ dành riêng làm , một dòng mới, hoặc một dấu chấm phẩy.
Thí dụ
#!/usr/bin/ruby
$i = 0
$num = 5
until $i > $num do
puts("Inside the loop i = #$i" )
$i +=1;
end
Điều này sẽ tạo ra kết quả sau:
Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Inside the loop i = 5
Ruby cho đến khi sửa đổi
Cú pháp
code until conditional
OR
begin
code
end until conditional
Thực thi mã trong khi điều kiện là sai.
Nếu một bổ ngữ cho đến sau câu lệnh bắt đầu không có mệnh đề cứu hoặc đảm bảo, mã được thực thi một lần trước khi điều kiện được đánh giá.
Thí dụ
#!/usr/bin/ruby
$i = 0
$num = 5
begin
puts("Inside the loop i = #$i" )
$i +=1;
end until $i > $num
Điều này sẽ tạo ra kết quả sau:
Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Inside the loop i = 5
Ruby cho Tuyên bố
Cú pháp
for variable [, variable ...] in expression [do]
code
end
Thực thi mã một lần cho mỗi phần tử trong biểu thức .
Thí dụ
#!/usr/bin/ruby
for i in 0..5
puts "Value of local variable is #{i}"
end
Ở đây, chúng tôi đã xác định phạm vi 0..5. Câu lệnh cho i trong 0..5 sẽ cho phép tôi nhận các giá trị trong phạm vi từ 0 đến 5 (bao gồm cả 5). Điều này sẽ tạo ra kết quả sau:
Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5
Một cho ... trong vòng lặp là gần như chính xác tương đương với những điều sau đây -
(expression).each do |variable[, variable...]| code end
ngoại trừ việc vòng lặp for không tạo phạm vi mới cho các biến cục bộ. Một cho vòng lặp của biểu được tách ra từ đang bởi từ dành riêng làm, một dòng mới, hoặc một dấu chấm phẩy.
Thí dụ
#!/usr/bin/ruby
(0..5).each do |i|
puts "Value of local variable is #{i}"
end
Điều này sẽ tạo ra kết quả sau:
Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5
Tuyên bố phá vỡ Ruby
Cú pháp
break
Chấm dứt vòng lặp nội bộ nhất. Kết thúc một phương thức với một khối được liên kết nếu được gọi trong khối (với phương thức trả về nil).
Thí dụ
#!/usr/bin/ruby
for i in 0..5
if i > 2 then
break
end
puts "Value of local variable is #{i}"
end
Điều này sẽ tạo ra kết quả sau:
Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Câu lệnh tiếp theo của Ruby
Cú pháp
next
Chuyển đến lần lặp tiếp theo của vòng lặp nội bộ nhất. Kết thúc việc thực thi một khối nếu được gọi trong một khối (với kết quả hoặc cuộc gọi trả về nil).
Thí dụ
#!/usr/bin/ruby
for i in 0..5
if i < 2 then
next
end
puts "Value of local variable is #{i}"
end
Điều này sẽ tạo ra kết quả sau:
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5
Ruby redo Statement
Cú pháp
redo
Khởi động lại lần lặp này của vòng lặp nội bộ nhất mà không cần kiểm tra điều kiện của vòng lặp. Khởi động lại năng suất hoặc cuộc gọi nếu được gọi trong một khối.
Thí dụ
#!/usr/bin/ruby
for i in 0..5
if i < 2 then
puts "Value of local variable is #{i}"
redo
end
end
Điều này sẽ tạo ra kết quả sau và sẽ đi theo một vòng lặp vô hạn:
Value of local variable is 0
Value of local variable is 0
............................
Câu lệnh thử lại của Ruby
Cú pháp
retry
Nếu thử lại xuất hiện trong mệnh đề cứu của biểu thức begin, hãy khởi động lại từ phần đầu của phần begin.
begin
do_something # exception raised
rescue
# handles error
retry # restart from beginning
end
Nếu thử lại xuất hiện trong trình lặp, khối hoặc nội dung của biểu thức for , hãy khởi động lại lệnh gọi trình lặp. Các đối số cho trình lặp được đánh giá lại.
for i in 1..5
retry if some_condition # restart from i == 1
end
Thí dụ
#!/usr/bin/ruby
for i in 0..5
retry if i > 2
puts "Value of local variable is #{i}"
end
Điều này sẽ tạo ra kết quả sau và sẽ đi theo một vòng lặp vô hạn:
Value of local variable is 1
Value of local variable is 2
Value of local variable is 1
Value of local variable is 2
Value of local variable is 1
Value of local variable is 2
............................