Trong C và nhiều ngôn ngữ khác, có một continue
từ khóa mà khi được sử dụng bên trong một vòng lặp, sẽ chuyển sang lần lặp tiếp theo của vòng lặp. Có bất kỳ tương đương với continue
từ khóa này trong Ruby?
Trong C và nhiều ngôn ngữ khác, có một continue
từ khóa mà khi được sử dụng bên trong một vòng lặp, sẽ chuyển sang lần lặp tiếp theo của vòng lặp. Có bất kỳ tương đương với continue
từ khóa này trong Ruby?
Câu trả lời:
Vâng, nó được gọi là next
.
for i in 0..5
if i < 2
next
end
puts "Value of local variable is #{i}"
end
Điều này xuất ra như 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
=> 0..5
next
) trên C ( continue
)
next
Ngoài ra, hãy xem cái redo
nào làm lại lần lặp hiện tại .
redo
lệnh của Perl (hoặc bản chất của nó, dù sao đi nữa). Đối với giải thích của Ruby, tìm kiếm "làm lại" trong trang này .
Viết câu trả lời của Ian Purton theo cách thành ngữ hơn một chút:
(1..5).each do |x|
next if x < 2
puts x
end
Bản in:
2
3
4
5
Bên cho-vòng và phương pháp lặp như each
và map
các next
từ khóa trong ruby sẽ có tác dụng nhảy đến phiên bản kế tiếp của vòng lặp (giống như continue
trong C).
Tuy nhiên, những gì nó thực sự làm chỉ là trở về từ khối hiện tại. Vì vậy, bạn có thể sử dụng nó với bất kỳ phương thức nào có một khối - ngay cả khi nó không liên quan gì đến phép lặp.
Ruby có hai từ khóa điều khiển vòng lặp / lặp khác: redo
và retry
.
Đọc thêm về chúng và sự khác biệt giữa chúng, tại Ruby QuickTips .
Sử dụng tiếp theo, nó sẽ bỏ qua điều kiện đó và phần còn lại của mã sẽ hoạt động. Dưới đây tôi đã cung cấp kịch bản đầy đủ và đặt ra
class TestBreak
puts " Enter the nmber"
no= gets.to_i
for i in 1..no
if(i==5)
next
else
puts i
end
end
end
obj=TestBreak.new()
Đầu ra: Nhập số 10
1 2 3 4 6 7 8 9 10