Trong C và nhiều ngôn ngữ khác, có một continuetừ 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 continuetừ khóa này trong Ruby?
Trong C và nhiều ngôn ngữ khác, có một continuetừ 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 continuetừ 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 redonào làm lại lần lặp hiện tại .
redolệ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ư eachvà mapcác nexttừ 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ư continuetrong 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: redovà 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