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 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 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, đượ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 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 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, đượ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ộ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
............................