У Ruby есть встроенный... пока?

Ruby имеет множество условных конструкций, включая if/unless, while/until и т.д.

Блок while от C:

while (condition) {
    ...
}

можно напрямую перевести на Ruby:

while condition 
    ...
end

Однако я не могу найти встроенный эквивалент в Ruby для C-like do ... while, в котором содержимое блока выполняется хотя бы один раз:

do { 
    ... 
} while (condition);

Любые предложения?

Ответы

Ответ 1

... Лучшее, что я мог придумать, это конструктор loop с break в конце:

loop do
    ...
    break unless condition
end

Ответ 2

Вы можете сделать

i=1
begin
  ...
  i+=1 
end until 10==x

(вы также можете применить предложение while до конца begin..end)

см. стр. 128 книги Flanagan/Matz Ruby Prog'g Lang: это то, что может быть удалено в версиях после 1,8

Ответ 3

number=3
begin
 puts  number
 number-=1
end while number>0

Ответ 4

Вы можете использовать

while condition
  ...
end