Ruby有内置功能吗?

时间:2008-10-10 09:03:46

标签: ruby conditional keyword

Ruby有很多条件结构,包括if / unlesswhile / until等。

来自C:{/ p>的while

while (condition) {
    ...
}

可以直接翻译成Ruby:

while condition 
    ...
end

但是,我似乎无法在Ruby中为类似C的do ... while块找到内置等效块,其中块内容至少执行一次:

do { 
    ... 
} while (condition);

有什么建议吗?

4 个答案:

答案 0 :(得分:30)

...我能想到的最好的是loop结构,最后有一个break

loop do
    ...
    break unless condition
end

答案 1 :(得分:12)

你可以做到

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

(你也可以将while子句添加到begin..end的末尾)

参见Flanagan的第128页/ Matz Ruby Prog'g Lang书:这可能会在1.8之后的版本中删除

答案 2 :(得分:6)

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

答案 3 :(得分:-3)

您可以使用

while condition
  ...
end