14

Ruby 有丰富的条件结构,包括if/ unlesswhile/until等。

while来自 C的块:

while (condition) {
    ...
}

可以直接翻译成Ruby:

while condition 
    ...
end

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

do { 
    ... 
} while (condition);

有什么建议么?

4

4 回答 4

31

...我能想到的最好的方法是末尾loop带有 a 的构造:break

loop do
    ...
    break unless condition
end
于 2008-10-10T09:04:09.800 回答
12

你可以做

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

(您也可以在 begin..end 的末尾添加一个 while 子句)

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

于 2008-10-10T13:51:04.017 回答
6
number=3
begin
 puts  number
 number-=1
end while number>0
于 2009-11-02T02:27:06.887 回答
-3

您可以使用

while condition
  ...
end
于 2008-10-10T09:20:29.550 回答