Tôi mới dùng ruby. muốn biết cách viết vòng lặp sau trong ruby.Cách viết vòng lặp âm trong ruby như (i = index; i> = 0; i -)
var index=25;
for (i = index; i >= 0; i--) {
print i;
}
Tôi mới dùng ruby. muốn biết cách viết vòng lặp sau trong ruby.Cách viết vòng lặp âm trong ruby như (i = index; i> = 0; i -)
var index=25;
for (i = index; i >= 0; i--) {
print i;
}
Hãy thử điều này:
25.downto(0) { |i| puts i }
Một cách:
25.downto(0) do |i|
puts i
end
Tôi đoán bạn đã tìm ra các phạm vi có thể không được sử dụng như thế này ;-) –
Đó là câu trả lời của người khác, kể từ khi bị xóa. Nó sẽ không vượt qua tâm trí của tôi để sử dụng một phạm vi khi điều này là chính xác những gì 'downto' là cho. –
Xin lỗi về điều đó. Tôi đã thích thú bởi câu trả lời, nhưng không nhớ tên :-) –
Có rất nhiều cách để thực hiện một vòng lặp decrementing trong Ruby:
cách đầu tiên:
for i in (10).downto(0)
puts i
end
cách thứ hai:
(10).downto(0) do |i|
puts i
end
Thứ ba cách:
i=10;
until i<0
puts i
i-=1
end
Cách thứ nhất chứa các dấu ngoặc không liên quan, và không phải là rất thành ngữ. Cách thứ 2 cũng chứa các parens không liên quan, có một 'each' không cần thiết, và có dấu ngoặc kép không cần thiết và nội suy biến đổi. Cách thứ ba chỉ đơn giản là bị hỏng. –
@MarkThomas: Tôi nghĩ rằng các dấu ngoặc đơn không liên quan là làm cho nó có vẻ ít rắc rối với người dùng Ruby mới, như tôi. Trong Javascript, điều tương tự là có thể, nhưng bạn cần sử dụng hai dấu chấm (điểm kết thúc và trình truy cập thuộc tính): '65536..toExponential()'. Đó là một cách hơi ngượng ngùng khi cho phép truy cập tài sản, vì vậy tôi tưởng tượng ít nhất là không phổ biến để sử dụng hoặc thậm chí biết về các ngôn ngữ khác, nơi có thể truy cập trực tiếp các thuộc tính của một số bằng dấu chấm. –
downto
là tốt, nhưng đó cũng là chung chung hơn step
.
25.step(0, -1){|i| puts i}
Chỉ trong trường hợp bạn đang làm việc với một loạt đã:
rng = 0..6
rng.reverse_each { |i| p i }
Dưới đây là một đơn giản nhất:
(0..25).reverse_each { |i| print i }
Không hoạt động, phạm vi không giảm. – steenslag
@steenslag Có vẻ như bạn đã đúng. Đang sửa. – edgerunner
lưu ý rằng câu hỏi của bạn nên đọc 'for (i = index; i > = 0; i -) ' – KevinDTimm
Nếu bạn mới sử dụng ruby, tại sao tiểu sử của bạn cho biết bạn có 5 năm kinh nghiệm về RoR? –
Vâng đánh dấu :), tôi là một nhà phát triển php trước khi –